Commit Graph

6355 Commits

Author SHA1 Message Date
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
Giuseppe Scrivano ed326206f2
rootless: remove SkipStorageSetup()
in the few places where we care about skipping the storage
initialization, we can simply use the process effective UID, instead
of relying on a global boolean flag.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-01 13:24:04 +02:00
Sascha Grunert 3600596b35
Update cri-o annotations
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2019-04-01 11:10:54 +02:00
OpenShift Merge Robot cd35e20772
Merge pull request #2812 from rpjday/topic/rpjday/missing_option_hyphen
docs/podman-inspect.1.md: add missing option hyphen for "-t"
2019-03-31 17:21:06 -07:00
Matthew Heon bb2b6a1ad4 Update README with current version
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-31 11:47:53 -04:00
OpenShift Merge Robot 056d2faa08
Merge pull request #2816 from rpjday/topic/rpjday/missing_hyphens
docs/podman*.md: fix numerous option typos and spacing errors
2019-03-31 08:44:06 -07:00
OpenShift Merge Robot 278c961f98
Merge pull request #2807 from mheon/bump-1.2.0
Bump to v1.2.0
2019-03-31 07:35:05 -07:00
OpenShift Merge Robot b4a5610624
Merge pull request #2814 from rpjday/topic/rpjday/container_rm
docs/podman-rm.1.md: delete "Not yet implemented" msg for volume removal
2019-03-31 07:24:06 -07:00
Robert P. J. Day 6ef64b90e4 docs/podman*.md: fix numerous option typos and spacing errors
Cursory examination of man pages shows a number of typos:

  - missing hyphens
  - missing blank line
  - longer option should precede shorter option

This is not an extensive fix, there's still a lot that could
be cleaned up.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2019-03-31 04:51:46 -04:00
Robert P. J. Day ee23622ca5 docs/podman-rm.1.md: delete "Not yet implemented" msg for volume removal
Since this feature appears to be implemented, remove the qualifier.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2019-03-30 18:30:41 -04:00
Robert P. J. Day 1f78a80bf1 docs/podman-inspect.1.md: add missing option hyphen for "-t"
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2019-03-30 13:35:38 -04:00
OpenShift Merge Robot 833204d63b
Merge pull request #2804 from rhatdan/help
Capitalize global options help information
2019-03-30 08:44:05 -07:00
Matthew Heon fa2933e6ab Bump gitvalidation epoch
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-30 11:33:15 -04:00
Matthew Heon 87162d6cd8 Bump to v1.3.0-dev
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-30 11:33:15 -04:00
Matthew Heon 3bd528e583 Bump to v1.2.0
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-30 11:33:12 -04:00
Daniel J Walsh 455312361b
Fix location of libpod.conf
libpod.conf defaults to /usr/share/containers/libpod.conf.

Clarify how administrators can override it and the location
of the users version for rootless mode.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-30 07:39:05 -04:00
Daniel J Walsh 33da2d4890
Capitalize global options help information
--trace, --help and --version were not capatilized like the rest of the
global options.  This patch fixes this problem.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-30 05:54:53 -04:00
OpenShift Merge Robot 7b73974819
Merge pull request #2803 from mheon/release_notes_v1.2.0
Update release notes for v1.2.0
2019-03-29 15:10:12 -07:00
OpenShift Merge Robot e435931544
Merge pull request #2801 from mheon/remove_wait_event
Remove wait event
2019-03-29 15:10:04 -07:00
OpenShift Merge Robot c5ccab2dc4
Merge pull request #2802 from TomSweeneyRedHat/dev/tsweeney/buildah1.7.2
Vendor Buildah 1.7.2
2019-03-29 12:32:08 -07:00
Matthew Heon ae9e12d711 Update release notes for v1.2.0
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-29 15:29:14 -04:00
OpenShift Merge Robot 0531565343
Merge pull request #2800 from mheon/lock_events_file
Add locking to ensure events file is concurrency-safe
2019-03-29 12:16:00 -07:00
Matthew Heon 99318b0894 Remove wait event
It's not necessary to log an event for a read-only operation like
wait.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-29 14:50:43 -04:00
TomSweeneyRedHat 1a0d4f2602 Vendor Buildah 1.7.2
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2019-03-29 14:08:45 -04:00
Matthew Heon 8108801247 Add locking to ensure events file is concurrency-safe
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-29 12:51:37 -04:00
OpenShift Merge Robot f4d90a96cb
Merge pull request #2691 from baude/psdynamic
Add watch mode to podman ps
2019-03-29 07:59:11 -07:00
OpenShift Merge Robot 8b5f101726
Merge pull request #2635 from rhatdan/cache
Set blob cache directory based on GraphDriver
2019-03-29 07:59:04 -07:00
OpenShift Merge Robot 284dea453d
Merge pull request #2797 from giuseppe/rootless-set-sticky
rootless: set sticky bit on rundir
2019-03-29 07:48:12 -07:00
OpenShift Merge Robot 83cea5d5bc
Merge pull request #2730 from giuseppe/userns-take-rid-of-intermediate-mountns
userns: do not use an intermediate mount namespace
2019-03-29 07:48:05 -07:00
OpenShift Merge Robot dd2bf91540
Merge pull request #2793 from mheon/alter_name_regex
Alter container/pod/volume name regexp to match Docker
2019-03-29 07:19:05 -07:00
Matthew Heon 449b8ab7b1 Alter container/pod/volume name regexp to match Docker
Docker's upstream name validation regex has two major differences
from ours that we pick up in this PR.

The first requires that the first character of a name is a letter
or number, not a special character.

The second allows periods in names.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-29 09:40:06 -04:00
Ed Santiago 1ae8a5b285
test: test that an unprivileged user cannot access the storage
Signed-off-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-29 14:04:45 +01:00
Giuseppe Scrivano 849548ffb8
userns: do not use an intermediate mount namespace
We have an issue in the current implementation where the cleanup
process is not able to umount the storage as it is running in a
separate namespace.

Simplify the implementation for user namespaces by not using an
intermediate mount namespace.  For doing it, we need to relax the
permissions on the parent directories and allow browsing
them. Containers that are running without a user namespace, will still
maintain mode 0700 on their directory.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-29 14:04:44 +01:00
Giuseppe Scrivano f7e72bc86a
volumes: push the chown logic to runtime_volume_linux.go
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-29 14:04:44 +01:00
OpenShift Merge Robot 9b789359f1
Merge pull request #2575 from haircommander/hotfix_play_kube
Default to SELinux private label for play kube mounts
2019-03-29 05:47:02 -07:00
OpenShift Merge Robot 376a89c7a4
Merge pull request #2524 from ekultails/podman-ps_man_page_status
Add all possible container status states to the podman-ps manual page.
2019-03-29 05:33:03 -07:00
Daniel J Walsh 6b0ac2301b
Cleanup image2 -> image for imports
Remove references to image2 in source code.  Makes the code
slightly more readable.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-29 08:27:47 -04:00
Daniel J Walsh c37589f503
Set blob cache directory based on GraphDriver
Currently in rootless containers, we end up not using the blob cache.
We also don't store the blob cache based on the users specified graph
storage.  This change will cause the cache directory to be stored with
the rest of the containe images.

While doing this patch, I found that we had duplicated GetSystemContext in
two places in libpod. I cleaned this up.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-29 08:27:33 -04:00
OpenShift Merge Robot 6ab27c6355
Merge pull request #2796 from mheon/fix_cni_multinetwork
Ensure that we make a netns for CNI non-default nets
2019-03-29 04:26:30 -07:00
Giuseppe Scrivano ca38ca49b8
utils: call GetRootlessRuntimeDir once
use a sync.Once to potentially avoid multiple system calls everytime
the function is called.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-29 12:01:13 +01:00
Giuseppe Scrivano 2fa9861d78
rootless: set sticky bit on rundir
it prevents the directory to be auto pruned, according to the XDG
specifications.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-29 12:01:12 +01:00
Giuseppe Scrivano d8caa2f2fa
oci: drop reference to runc
it can be any OCI runtime.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-29 11:10:34 +01:00
OpenShift Merge Robot fdf979a791
Merge pull request #2786 from giuseppe/change-rootless-env-names
rootless: change env prefix
2019-03-28 17:00:31 -07:00
OpenShift Merge Robot df5b6e29a6
Merge pull request #2784 from QiWang19/digest
fix bug remote-podman images --digests
2019-03-28 16:51:31 -07:00
Matthew Heon e25924f31c Fix lint
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-03-28 18:01:36 -04:00
Matthew Heon beb263554e Ensure that we make a netns for CNI non-default nets
We accidentally patched this out trying to enable ns:/path/to/ns

This should restore the ability to configure nondefault CNI
networks with Podman, by ensuring that they request creation of a
network namespace.

Completely remove the WithNetNS() call when we do use an explicit
namespace from a path. We use that call to indicate that a netns
is going to be created - there should not be any question about
whether it actually does.

Fixes #2795

Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-03-28 17:39:56 -04:00
OpenShift Merge Robot 9085898ce2
Merge pull request #2773 from QiWang19/bug
fix bug `system df` add a space to the output
2019-03-28 09:21:48 -07:00
Giuseppe Scrivano ce0ca0d459
rootless: change env prefix
from _LIBPOD to _CONTAINERS.  The same change was done in buildah
unshare.

This is necessary for podman to detect we are running in a rootless
environment and work properly from a "buildah unshare" session.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-28 17:08:20 +01:00
OpenShift Merge Robot ef1b58e6f2
Merge pull request #2789 from vrothberg/vendor
vendor buildah, image, storage, cni
2019-03-28 07:19:34 -07:00
Valentin Rothberg a5443a532b vendor buildah, image, storage, cni
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-03-28 15:12:26 +01:00