Commit graph

2448 commits

Author SHA1 Message Date
Marco Vedovati
64a91b09ae libpod: discerne partial IDs between containers and pods
When specifying a podman command with a partial ID, container and pod
commands matches respectively only containers or pods IDs in the BoltDB.

Fixes: #3487
Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-07-03 11:57:45 +02:00
Sascha Grunert
143ed8b826
Vendor latest OCICNI version
This is needed for dual stack IPv6 support within CRI-O. Because the API
changed within OCICNI, we have to adapt the internal linux networking as
well.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2019-07-03 11:35:44 +02:00
Matthew Heon
38c6199b80 Wipe PID and ConmonPID in state after container stops
Matches the behavior of Docker.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-07-02 19:10:51 -04:00
Matthew Heon
a1bb1987cc Store Conmon's PID in our state and display in inspect
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-07-02 18:52:55 -04:00
OpenShift Merge Robot
3fa818a036
Merge pull request #3465 from baude/nostore
configure runtime without store
2019-07-03 00:37:31 +02:00
Peter Hunt
aeabc45cce Improve parsing of mounts
Specifically, we were needlessly doing a double lookup to find which config mounts were user volumes. Improve this by refactoring a bit of code from inspect

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-07-02 15:18:44 -04:00
OpenShift Merge Robot
55e028a12e
Merge pull request #3461 from mheon/free_locks_on_fail
Ensure locks are freed when ctr/pod creation fails
2019-07-02 20:41:31 +02:00
Peter Hunt
db2cc36033 Deduplicate volumes
for containers that share volumes, so the pod section doesn't list copies

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-07-02 14:08:09 -04:00
Matthew Heon
e92de11a69 Ensure locks are freed when ctr/pod creation fails
If we don't do this, we can leak locks on every failure, and that
is very, very bad - can render Podman unusable without a 'system
renumber' being run.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-07-02 12:51:39 -04:00
Giuseppe Scrivano
827ac0859f
lock: new lock type "file"
it is a wrapper around containers/storage file locking.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-07-02 16:41:10 +02:00
Giuseppe Scrivano
82164a2e9e
runtime: allow to specify the lock mechanism
preparation for the next patch.  It currently supports only "shm".

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-07-02 16:41:10 +02:00
Giuseppe Scrivano
2341eaa6c1
lock: disable without cgo
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-07-02 16:41:04 +02:00
Giuseppe Scrivano
c81a8f2b6d
attach: move cgo bits to a different file
move the cgo bits to a separate file to allow building without cgo.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-07-02 16:41:02 +02:00
Giuseppe Scrivano
856780f552
stats: use runtime.NumCPU when percpu counters are not available
in the cgroup v2 implementation we don't have yet percpu times.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-07-02 14:14:18 +02:00
Peter Hunt
aa9de67452 Pass along volumes to pod yaml
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-07-01 16:58:53 -04:00
Peter Hunt
1307e96d5e Configure container volumes for generate kube
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-07-01 16:07:25 -04:00
baude
d0a0a3fbd9 configure runtime without store
some podman commands do not require the use of a container/image store.
in those cases, it is more effecient to not open the store, because that
results in having to also close the store which can be costly when the
system is under heavy write I/O loads.

Signed-off-by: baude <bbaude@redhat.com>
2019-07-01 14:15:44 -05:00
OpenShift Merge Robot
150778820f
Merge pull request #3324 from marcov/detach-keys-configurable
libpod: specify a detach keys sequence in libpod.conf
2019-07-01 15:54:27 +02:00
OpenShift Merge Robot
ed394070a8
Merge pull request #3422 from nalind/no-layer-images
Handle images which contain no layers
2019-06-28 19:14:45 +02:00
Giuseppe Scrivano
7255468e65
rootless: enable linger if /run/user/UID not exists
at least on Fedora 30 it creates the /run/user/UID directory for the
user logged in via ssh.

This needs to be done very early so that every other check when we
create the default configuration file will point to the correct
location.

Closes: https://github.com/containers/libpod/issues/3410

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-06-27 16:34:35 +02:00
OpenShift Merge Robot
0906b32087
Merge pull request #3442 from baude/removelibpodfrommainphase2
libpod removal from main (phase 2)
2019-06-27 16:01:45 +02:00
baude
8561b99644 libpod removal from main (phase 2)
this is phase 2 for the removal of libpod from main.

Signed-off-by: baude <bbaude@redhat.com>
2019-06-27 07:56:24 -05:00
Giuseppe Scrivano
7e3c27eb9d
runtime: do not attempt to use global conf file
we had a regression where the rootless user tried to use the global
configuration file.  We should not try to use the global configuration
when running in rootless but only cherry-pick some settings from there
when creating the file for the first time.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-06-27 14:22:51 +02:00
Giuseppe Scrivano
bfcf0292de
runtime: use GetRootlessUID() to get rootless uid
otherwise it won't work in a user namespace.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-06-27 13:52:36 +02:00
OpenShift Merge Robot
7705f99fe6
Merge pull request #3429 from cevich/strip_crio_conmon
Remove refs to crio/conmon
2019-06-27 03:05:33 +02:00
Chris Evich
fc32439c29
Remove refs to crio/conmon
Conmon has moved out of cri-o and into it's own dedicated repository.
This commit updates configuration and definitions which referenced
the old cri-o based paths.

Signed-off-by: Chris Evich <cevich@redhat.com>
2019-06-26 12:44:22 -04:00
Nalin Dahyabhai
1ebb84b58e Handle images which contain no layers
This fixes some of our handling of images which have no layers, i.e.,
those whose TopLayer is set to an empty value.

Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
2019-06-26 10:43:04 -04:00
Giuseppe Scrivano
e27fef335a
stats: fix cgroup path for rootless containers
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-06-26 13:17:06 +02:00
Giuseppe Scrivano
72cf0c81e8
libpod: use pkg/cgroups instead of containerd/cgroups
use the new implementation for dealing with cgroups.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-06-26 13:17:02 +02:00
Marco Vedovati
4f56964d55 libpod: fix hang on container start and attach
When a container is attached upon start, the WaitGroup counter may
never be decremented if an error is raised before start, causing
the caller to hang.
Synchronize with the start & attach goroutine using a channel, to be
able to detect failures before start.

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-06-26 10:17:29 +02:00
Marco Vedovati
7e3f1c21b0 libpod: specify a detach keys sequence in libpod.conf
Add the ability of specifying a detach keys sequence in libpod.conf

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-06-26 10:12:34 +02:00
OpenShift Merge Robot
c9078936dd
Merge pull request #3419 from baude/removelibpodfrommainphase1
remove libpod from main
2019-06-26 02:36:06 +02:00
baude
dd81a44ccf remove libpod from main
the compilation demands of having libpod in main is a burden for the
remote client compilations.  to combat this, we should move the use of
libpod structs, vars, constants, and functions into the adapter code
where it will only be compiled by the local client.

this should result in cleaner code organization and smaller binaries. it
should also help if we ever need to compile the remote client on
non-Linux operating systems natively (not cross-compiled).

Signed-off-by: baude <bbaude@redhat.com>
2019-06-25 13:51:24 -05:00
OpenShift Merge Robot
a488e197a6
Merge pull request #3417 from mheon/fix_play_kube_ports
Only include ports in one container in Kube YAML
2019-06-25 20:21:24 +02:00
Adrian Reber
220e169cc1
Provide correct SELinux mount-label for restored container
Restoring a container from a checkpoint archive creates a complete
new root file-system. This file-system needs to have the correct SELinux
label or most things in that restored container will fail. Running
processes are not as problematic as newly exec()'d process (internally
or via 'podman exec').

This patch tells the storage setup which label should be used to mount
the container's root file-system.

Signed-off-by: Adrian Reber <areber@redhat.com>
2019-06-25 14:55:11 +02:00
Adrian Reber
94e2a0cd63
Track if a container is restored from an exported checkpoint
Instead of only tracking that a container is restored from
a checkpoint locally in runtime_ctr.go this adds a flag to the
Container structure.

Upcoming patches to correctly label the root file-system mount-point
need also to know if a container is restored from a checkpoint.

Instead of passing a parameter around a lot of functions, this
adds that information to the Container structure.

Signed-off-by: Adrian Reber <areber@redhat.com>
2019-06-25 14:55:11 +02:00
OpenShift Merge Robot
21978c9908
Merge pull request #3332 from rhatdan/cgroupmanager
Correctly identify the defaults for cgroup-manager
2019-06-25 14:54:28 +02:00
OpenShift Merge Robot
d8b18a9879
Merge pull request #3401 from mheon/templating_is_dumb
Fix inspect --format '{{.Mounts}}.
2019-06-25 00:20:25 +02:00
Matthew Heon
ebf48ff459 Only include ports in one container in Kube YAML
This likely broke when we made containers able to detect that
they shared a network namespace and grab ports from the
dependency container - prior to that, we could grab ports without
concern for conflict, only the infra container had them. Now, all
containers in a pod will return the same ports, so we have to
work around this.

Fixes #3408

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-06-24 14:27:47 -04:00
OpenShift Merge Robot
a1a4a75abe
Merge pull request #3412 from mheon/fix_ps_sync_segfault
Fix a segfault in 'podman ps --sync'
2019-06-24 18:36:20 +02:00
Matthew Heon
de75b1a277 Fix a segfault in 'podman ps --sync'
We weren't properly populating the container's OCI Runtime in
Batch(), causing segfaults on attempting to access it. Add a test
to make sure we actually catch cases like this in the future.

Fixes #3411

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-06-24 09:26:03 -04:00
Giuseppe Scrivano
bd5e113b71
rootless: add an entry to /etc/hosts when using slirp4netns
Closes: https://github.com/containers/libpod/issues/3405

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-06-24 10:12:33 +02:00
OpenShift Merge Robot
5787f88042
Merge pull request #3399 from astronouth7303/patch-1
Add /usr/local/{s,}bin to conmon paths
2019-06-22 12:18:06 +02:00
Matthew Heon
c233a12772 Add additional debugging when refreshing locks
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-06-21 16:00:39 -04:00
Matthew Heon
7625d28c82 Fix gofmt
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-06-21 15:25:06 -04:00
Matthew Heon
7d76548b41 Adjust names to match struct tags in Inspect
In Go templating, we use the names of fields, not the JSON struct
tags. To ensure templating works are expected, we need the two to
match.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-06-21 15:09:59 -04:00
Matthew Heon
778a634daa Fix inspect --format '{{.Mounts}}.
Go templating is incapable of dealing with pointers, so when we
moved to Docker compatible mounts JSON, we broke it. The solution
is to not use pointers in this part of inspect.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-06-21 15:00:30 -04:00
Jamie Bliss
e2b0587c21 runtime.go: Add /usr/local/{s,}bin
Signed-off-by: Jamie Bliss <jamie@ivyleav.es>
2019-06-21 14:38:29 -04:00
OpenShift Merge Robot
7d8aba9248
Merge pull request #3378 from mheon/multiple_runtimes
Begin adding support for multiple OCI runtimes
2019-06-21 14:46:54 +02:00
Sascha Grunert
4bfbc355de
Build cgo files with -Wall -Werror
To avoid unnecessary warnings and errors in the future I'd like to
propose building all cgo related sources with `-Wall -Werror`. This
commit fixes some warnings which came up in `shm_lock.c`, too.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2019-06-21 10:14:19 +02:00