Commit Graph

2305 Commits

Author SHA1 Message Date
OpenShift Merge Robot
aae3e71f9a Merge pull request #8217 from giuseppe/caps-ambient
specgen: add support for ambient capabilities
2020-11-03 11:44:23 +01:00
OpenShift Merge Robot
8dfbdb561b Merge pull request #8166 from rhatdan/unbindable
Allow users to mount with unbindable flag
2020-11-02 18:19:39 +01:00
Giuseppe Scrivano
afa4ec0db0 specgen: keep capabilities with --userns=keep-id
if --userns=keep-id is specified and not --user is specified, take the
unprivileged capabilities code path so that ambient capabilities are
honored in the container.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-11-02 15:46:56 +01:00
Giuseppe Scrivano
6a94429098 specgen: fix check for root user
if the username is specified in the USER:GROUP form, make sure we only
check for USER.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-11-02 14:39:02 +01:00
Giuseppe Scrivano
bce8f851c1 specgen: add support for ambient capabilities
if the kernel supports ambient capabilities (Linux 4.3+), also set
them when running with euid != 0.

This is different that what Moby does, as ambient capabilities are
never set.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-11-02 14:36:39 +01:00
Daniel J Walsh
3ee44d942e Add better support for unbindable volume mounts
Allow users to specify unbindable on volume command line

Switch internal mounts to rprivate to help prevent leaks.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-11-02 07:19:12 -05:00
Jordan Christiansen
0357964906 Centralize cores and period/quota conversion code
Signed-off-by: Jordan Christiansen <xordspar0@gmail.com>
2020-10-31 10:07:11 -05:00
OpenShift Merge Robot
2aaa036f56 Merge pull request #8197 from giuseppe/check-cgroupv2-swap-enabled
specgen, cgroup2: check whether memory swap is enabled
2020-10-31 11:40:07 +01:00
OpenShift Merge Robot
b6ab2df9d1 Merge pull request #8100 from QiWang19/mirror-manifest
manifest list inspect single image
2020-10-31 00:19:52 +01:00
OpenShift Merge Robot
1fe79dd677 Merge pull request #8177 from rhatdan/wrap
Stop excessive wrapping of errors
2020-10-30 19:52:17 +01:00
OpenShift Merge Robot
3653e57a2a Merge pull request #8200 from haircommander/parse-segfault
spec: protect against segfault
2020-10-30 19:42:26 +01:00
Giuseppe Scrivano
4860223ce5 specgen, cgroup2: check whether memory swap is enabled
add a similar check to what we do on cgroup v1.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-10-30 19:35:14 +01:00
OpenShift Merge Robot
37b550c96a Merge pull request #8196 from giuseppe/specgen-swap-limit-err-message
specgen: fix error message
2020-10-30 18:22:47 +01:00
OpenShift Merge Robot
5eebe3dd3d Merge pull request #8191 from mheon/no_error_on_sigproxy_stopped
When container stops, drop sig-proxy errors to infos
2020-10-30 18:19:29 +01:00
Qi Wang
57650aa5f3 manifest list inspect single image
If the image name not a manifest list type, enable manifest inspect to return manifest of single image manifest type vnd.docker.distribution.manifest.v2+json.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-10-30 11:13:57 -04:00
Peter Hunt
3d70b60adc spec: protect against segfault
when the user passes in "/dev/null::w"

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2020-10-30 10:45:10 -04:00
Giuseppe Scrivano
22702b9d60 specgen: split cgroup v1 and cgroup v2 code
refactor function into two separate ones.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-10-30 14:46:43 +01:00
Giuseppe Scrivano
433fea303e specgen: fix error message
drop spurious comma.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-10-30 14:30:33 +01:00
Matthew Heon
ed9edf840a When container stops, drop sig-proxy errors to infos
The sig-proxy code is set up to error on failing to forward
signals to a container. This is reasonable in cases where the
container is running, but something strange went wrong - but when
the Kill fails because the container is stopped, we shouldn't
bother with aggressive Error logging since this is an expected
part of the container lifecycle - it stops, and then `podman run`
also stops, but there is a timing window in between where signals
will fail to be proxied, and we should not print angry errors
during that.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-10-30 09:23:47 -04:00
Daniel J Walsh
831d7fb0d7 Stop excessive wrapping of errors
Most of the builtin golang functions like os.Stat and
os.Open report errors including the file system object
path. We should not wrap these errors and put the file path
in a second time, causing stuttering of errors when they
get presented to the user.

This patch tries to cleanup a bunch of these errors.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-30 05:34:04 -04:00
Daniel J Walsh
916825b675 Pod's that share the IPC Namespace need to share /dev/shm
Containers that share IPC Namespaces share each others
/dev/shm, which means a private /dev/shm needs to be setup
for the infra container.

Added a system test and an e2e test to make sure the
/dev/shm is shared.

Fixes: https://github.com/containers/podman/issues/8181

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-30 05:21:34 -04:00
OpenShift Merge Robot
c8f0e1dab6 Merge pull request #8146 from vrothberg/image-mounts
new "image" mount type
2020-10-29 18:15:24 +01:00
OpenShift Merge Robot
6d72e7611e Merge pull request #8165 from edsantiago/move_from_dockerio
Move from docker.io
2020-10-29 18:00:33 +01:00
OpenShift Merge Robot
7485005206 Merge pull request #8178 from rhatdan/exists
NewFromLocal can return multiple images
2020-10-29 17:04:05 +01:00
OpenShift Merge Robot
b6aa9c1077 Merge pull request #8173 from giuseppe/improve-cannot-reexec-error
rootless: improve error message if cannot join namespaces
2020-10-29 16:15:30 +01:00
Valentin Rothberg
65a618886e new "image" mount type
Add a new "image" mount type to `--mount`.  The source of the mount is
the name or ID of an image.  The destination is the path inside the
container.  Image mounts further support an optional `rw,readwrite`
parameter which if set to "true" will yield the mount writable inside
the container.  Note that no changes are propagated to the image mount
on the host (which in any case is read only).

Mounts are overlay mounts.  To support read-only overlay mounts, vendor
a non-release version of Buildah.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-10-29 15:06:22 +01:00
OpenShift Merge Robot
fdd32604cf Merge pull request #8161 from afbjorklund/podman-remote-host-hash
Support hashed hostnames in the known_hosts file
2020-10-29 06:31:20 -04:00
Giuseppe Scrivano
cfc41b32fd rootless: improve error message if cannot join namespaces
if podman failed to join the rootless namespaces, give users a better
errror message and possible solution.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1891220

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-10-29 08:49:40 +01:00
Daniel J Walsh
99d3e2e9d7 NewFromLocal can return multiple images
If you use additional stores and pull the same image into
writable stores, you can end up with the situation where
you have the same image twice. This causes image exists
to return the wrong error.  It should return true in this
situation rather then an error.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-28 16:02:53 -04:00
Ed Santiago
20e104351d move from docker.io
Followon to #7965 (mirror registry). mirror.gcr.io doesn't
cache all the images we need, and I can't find a way to
add to its cache, so let's just use quay.io for those
images that it can't serve.

Tools used:
  skopeo copy --all docker://docker.io/library/alpine:3.10.2 \
                    docker://quay.io/libpod/alpine:3.10.2

...and also:

    docker.io/library/alpine:3.2
    docker.io/library/busybox:latest
    docker.io/library/busybox:glibc
    docker.io/library/busybox:1.30.1
    docker.io/library/redis:alpine
    docker.io/libpod/alpine-with-bogus-seccomp:label
    docker.io/libpod/alpine-with-seccomp:label
    docker.io/libpod/alpine_healthcheck:latest
    docker.io/libpod/badhealthcheck:latest

Since most of those were new quay.io/libpod images, they required
going in through the quay.io GUI, image, settings, Make Public.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-10-28 13:16:37 -06:00
OpenShift Merge Robot
7149a7cb39 Merge pull request #8102 from ashley-cui/inspect
Add pod, volume, network to inspect package
2020-10-27 17:04:44 -04:00
Ashley Cui
61deec451f Add pod, volume, network to inspect package
podman inspect only had the capabilities to inspect containers and images. if a user wanted to inspect a pod, volume, or network, they would have to use `podman network inspect`, `podman pod inspect` etc. Docker's cli allowed users to inspect both volumes and networks using regular inspect, so this commit gives the user the functionality

If the inspect type is not specified using --type, the order of inspection is:

containers
images
volumes
networks
pods

meaning if container that has the same name as an image, podman inspect would return the container inspect.

To avoid duplicate code, podman network inspect and podman volume inspect now use the inspect package as well. Podman pod inspect does not because podman pod inspect returns a single json object while podman inspect can return multiple)

Signed-off-by: Ashley Cui <acui@redhat.com>
2020-10-27 14:42:54 -04:00
OpenShift Merge Robot
ee29328abc Merge pull request #8141 from afbjorklund/podman-remote-host-port-master
Add support for host keys for non-22 ports
2020-10-27 13:30:13 -04:00
OpenShift Merge Robot
0f0d857f6c Merge pull request #8151 from vrothberg/fix-8148
image list: check for all errors
2020-10-27 14:29:41 +01:00
Anders F Björklund
83e54885ff Support hashed hostnames in the known_hosts file
Some systems have "HashKnownHosts yes" in their ssh_config

This causes entries in the ssh known_hosts to be hashed (|)

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2020-10-27 12:19:44 +01:00
Valentin Rothberg
65fabcfce7 image list: check for all errors
For unknown historical reasons, some errors were ignored when listing
images.  I assume that the basic assumption was that if we can properly
list images, we can also successfully compute their sizes which turned
out to be wrong.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-10-27 10:39:09 +01:00
Daniel J Walsh
32af1be01a The cidfile should be created when the container is created
Currently if you run an interactive session of podman run and
specifiy the --cidfile option, the cidfile will not get created
until the container finishes running.  If you run a detached
container, it will get created right away.  This Patch creates
the cidfile as soon as the container is created.  This could allow
other tools to use the cidefile on all running containers.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-10-26 05:53:26 -04:00
Anders F Björklund
6f6cf87f8f Add support for host keys for non-22 ports
When not using the standard SSH port (22), the port is appended
to the hostname (in brackets) like so: "host" -> "[host]:1234"

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
(cherry picked from commit 8794e8db1c)
2020-10-25 16:30:42 +01:00
Matej Vasek
97d47ef3d5 fix: podman-cp respects "--extract" flag
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2020-10-25 15:58:36 +01:00
OpenShift Merge Robot
51fa8ded9f Merge pull request #8109 from matejvasek/inspect-apiv2-rootfs
fix: /image/{name or id}/json returns RootFS layers
2020-10-23 07:01:03 -04:00
OpenShift Merge Robot
a53a660313 Merge pull request #8078 from baude/networkdisconnect
APIv2 compatibility network connect|disconnect
2020-10-22 16:19:11 -04:00
Matej Vasek
a997b59e44 src: nil check
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2020-10-22 20:05:01 +02:00
Matej Vasek
5098048f82 src: add nil checks
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2020-10-22 18:33:15 +02:00
Matej Vasek
89e7b8f22b fix: /image/{name}/json returns RootFS layers
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2020-10-22 17:09:44 +02:00
OpenShift Merge Robot
2cb12bbc5a Merge pull request #8098 from vrothberg/fix-8082
container create: record correct image name
2020-10-22 11:03:46 -04:00
OpenShift Merge Robot
513c2610f3 Merge pull request #7956 from QiWang19/save-rm-sig
Allow save image remove-signatures
2020-10-22 11:00:09 -04:00
OpenShift Merge Robot
5d70f46bd3 Merge pull request #8104 from baude/setnetworkdriverdefault
set compat network driver default
2020-10-22 09:21:45 -04:00
baude
6841936525 APIv2 compatibility network connect|disconnect
Add endpoints for the compat layer for network connect and disconnect. As of now, these two endpoints do nothing to change the network state of a container.  They do some basic data verification and return the proper 200 response.  This at least allows for scripts to work on the compatibility layer instead of getting 404s.

Signed-off-by: baude <bbaude@redhat.com>
2020-10-22 08:20:28 -05:00
OpenShift Merge Robot
2cd2359a6d Merge pull request #7772 from TomSweeneyRedHat/dev/tsweeney/splitn
Convert Split() calls with an equal sign to SplitN()
2020-10-21 21:00:16 -04:00
baude
cf227cc7f2 set compat network driver default
when using the compatibility endpoint for creating a network, if the driver is not provided, we need to set it to the default network driver ... which is bridge.

Signed-off-by: baude <bbaude@redhat.com>
2020-10-21 14:48:29 -05:00