spiegel_podman/libpod
Giuseppe Scrivano 72382a12a7
rootless: use a single user namespace
simplify the rootless implementation to use a single user namespace
for all the running containers.

This makes the rootless implementation behave more like root Podman,
where each container is created in the host environment.

There are multiple advantages to it: 1) much simpler implementation as
there is only one namespace to join.  2) we can join namespaces owned
by different containers.  3) commands like ps won't be limited to what
container they can access as previously we either had access to the
storage from a new namespace or access to /proc when running from the
host.  4) rootless varlink works.  5) there are only two ways to enter
in a namespace, either by creating a new one if no containers are
running or joining the existing one from any container.

Containers created by older Podman versions must be restarted.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-01 15:32:58 +02:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
driver switch projectatomic to containers 2018-08-16 17:12:36 +00:00
events Merge pull request #2801 from mheon/remove_wait_event 2019-03-29 15:10:04 -07:00
image Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
lock Do not make renumber shut down the runtime 2019-02-21 10:51:42 -05:00
testdata libpod/container_internal: Deprecate implicit hook directories 2018-12-03 12:54:30 -08:00
boltdb_state.go Change LookupContainer logic to match Docker 2019-03-06 14:26:57 -05:00
boltdb_state_internal.go vendor buildah, image, storage, cni 2019-03-28 15:12:26 +01:00
boltdb_state_linux.go podman-remote inspect 2019-01-18 15:43:11 -06:00
boltdb_state_unsupported.go podman-remote inspect 2019-01-18 15:43:11 -06:00
common_test.go podman-remote inspect 2019-01-18 15:43:11 -06:00
container.go userns: do not use an intermediate mount namespace 2019-03-29 14:04:44 +01:00
container_api.go Remove wait event 2019-03-29 14:50:43 -04:00
container_attach_linux.go Fix manual detach from containers to not wait for exit 2019-02-12 10:14:57 -05:00
container_attach_unsupported.go Add darwin support for remote-client 2019-01-11 11:30:28 -06:00
container_commit.go Add event logging to libpod, even display to podman 2019-03-11 15:08:59 -05:00
container_graph.go pod infra container is started before a container in a pod is run, started, or attached. 2019-02-15 16:39:24 -05:00
container_graph_test.go Update unit tests to use in-memory lock manager 2019-01-04 09:51:09 -05:00
container_inspect.go Export ConmonPidFile in 'podman inspect' for containers 2019-03-18 21:03:22 +01:00
container_internal.go userns: do not use an intermediate mount namespace 2019-03-29 14:04:44 +01:00
container_internal_linux.go userns: do not use an intermediate mount namespace 2019-03-29 14:04:44 +01:00
container_internal_test.go libpod/container_internal: Split locale at the first dot, etc. 2019-03-05 22:02:50 -08:00
container_internal_unsupported.go Make sure buildin volumes have the same ownership and permissions as image 2019-03-15 10:44:44 -04:00
container_linux.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_log.go podman logs on created container should exit 2019-03-18 08:58:48 -05:00
container_top_linux.go vendor latest containers/psgo 2018-07-26 17:01:40 +00:00
container_top_unsupported.go podman-top: use containers/psgo 2018-07-19 20:47:52 +00:00
container_unsupported.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
diff.go Don't output inodes created to run a container 2018-09-21 09:45:14 +00:00
errors.go Fix manual detach from containers to not wait for exit 2019-02-12 10:14:57 -05:00
events.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
healthcheck.go podman health check phase3 2019-03-22 14:58:44 -05:00
in_memory_state.go Add ability to rewrite pod configs in the database 2019-02-21 10:51:42 -05:00
info.go vendor buildah, image, storage, cni 2019-03-28 15:12:26 +01:00
kube.go show container ports of network namespace 2019-02-13 13:51:23 -06:00
mounts_linux.go set root propagation based on volume properties 2018-11-26 13:55:02 +01:00
networking_linux.go Integration test tweaks 2019-03-15 13:41:01 -05:00
networking_unsupported.go switch projectatomic to containers 2018-08-16 17:12:36 +00:00
oci.go oci: drop reference to runc 2019-03-29 11:10:34 +01:00
oci_linux.go userns: do not use an intermediate mount namespace 2019-03-29 14:04:44 +01:00
oci_unsupported.go Use also a struct to pass options to Restore() 2018-11-28 08:00:37 +01:00
options.go Merge pull request #2730 from giuseppe/userns-take-rid-of-intermediate-mountns 2019-03-29 07:48:05 -07:00
pod.go Convert pods to SHM locks 2019-01-04 09:51:09 -05:00
pod_api.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
pod_internal.go pod infra container is started before a container in a pod is run, started, or attached. 2019-02-15 16:39:24 -05:00
pod_top_linux.go Add podman pod top 2018-08-23 15:01:17 +00:00
pod_top_unsupported.go Add podman pod top 2018-08-23 15:01:17 +00:00
runtime.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
runtime_ctr.go rootless: use a single user namespace 2019-04-01 15:32:58 +02:00
runtime_img.go Buffer stdin to a file when importing "-" 2019-03-11 13:33:14 -04:00
runtime_img_test.go switch projectatomic to containers 2018-08-16 17:12:36 +00:00
runtime_pod.go Fixing network ns segfault 2018-08-23 18:16:28 +00:00
runtime_pod_infra_linux.go Fix generation of infra container command 2019-03-10 14:25:13 -04:00
runtime_pod_linux.go Add event logging to libpod, even display to podman 2019-03-11 15:08:59 -05:00
runtime_pod_unsupported.go Added option to share kernel namespaces in libpod and podman 2018-08-23 18:16:28 +00:00
runtime_renumber.go Do not make renumber shut down the runtime 2019-02-21 10:51:42 -05:00
runtime_volume.go Add event logging to libpod, even display to podman 2019-03-11 15:08:59 -05:00
runtime_volume_linux.go volumes: push the chown logic to runtime_volume_linux.go 2019-03-29 14:04:44 +01:00
runtime_volume_unsupported.go Add gating tasks 2019-03-13 12:10:35 -05:00
state.go Validate VolumePath against DB configuration 2019-02-26 09:37:00 -05:00
state_test.go Add ability to rewrite pod configs in the database 2019-02-21 10:51:42 -05:00
stats.go Add ability for ubuntu to be tested 2018-10-03 12:45:37 -05:00
stats_config.go changes to allow for darwin compilation 2018-06-29 20:44:09 +00:00
stats_unsupported.go changes to allow for darwin compilation 2018-06-29 20:44:09 +00:00
storage.go OpenTracing support added to start, stop, run, create, pull, and ps 2019-02-18 09:57:08 -05:00
util.go Remove ulele/deepcopier in favor of JSON deep copy 2019-03-27 20:00:31 -04:00
util_linux.go Default to SELinux private label for play kube mounts 2019-03-28 09:54:31 -04:00
util_test.go Stage3 Image Library 2018-03-14 20:21:31 +00:00
util_unsupported.go Default to SELinux private label for play kube mounts 2019-03-28 09:54:31 -04:00
version.go enable podman-remote version 2019-01-21 15:23:30 -06:00
volume.go volumes: push the chown logic to runtime_volume_linux.go 2019-03-29 14:04:44 +01:00
volume_internal.go Remove locks from volumes 2019-02-21 10:51:42 -05:00