Commit Graph

2075 Commits

Author SHA1 Message Date
Giuseppe Scrivano 89e9067dec
rootless: do not add an additional /run to runroot
we are currently using something like /run/user/UID/run as runroot, as
it is already done by Buildah.  This ends up with
/run/user/UID/run/runc for the runc directory.  Change to drop the
additional /run so that runc will use /run/user/UID/runc.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-10-31 13:58:55 +01:00
OpenShift Merge Robot ee513cca86
Merge pull request #1704 from giuseppe/attach-cuid-too-long
attach: fix attach when cuid is too long
2018-10-30 14:22:01 -07:00
OpenShift Merge Robot 319a7a7043
Merge pull request #1715 from baude/getusergroup
get user and group information using securejoin and runc's user library
2018-10-30 11:49:15 -07:00
OpenShift Merge Robot ce24ce7c53
Merge pull request #1728 from baude/trunccommand
truncate command output in ps by default
2018-10-30 07:49:28 -07:00
Giuseppe Scrivano c65b3599cc
runtime: do not allow runroot longer than 50 characters
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-10-30 15:35:24 +01:00
Giuseppe Scrivano f77d846536
attach: fix attach when cuid is too long
conmon creates a symlink to avoid using a too long UNIX path.

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

There is still one issue when the path length of the symlink has the
same length of the attach socket parent directory since conmon fails
to create the symlink, but that must be addressed in conmon first.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-10-30 15:35:24 +01:00
baude aa49675e29 truncate command output in ps by default
when the PS command was reworked for performance and formatting improvements,
i forgot to truncate the command field.  Long container commands was throwing
the formatting off. we now truncated to 17 characters plus the elipses.

Signed-off-by: baude <bbaude@redhat.com>
2018-10-30 08:35:22 -05:00
OpenShift Merge Robot 24d4f114ea
Merge pull request #1725 from cevich/newer_runc_commit
Use newer runc commit in VM images
2018-10-30 04:21:39 -07:00
Chris Evich 8126eb8a39
Update the runc commit used for testing
Use image ubuntu-1804-bionic-v20180911-libpod-63a86a18 which was built
with RUNC_COMMIT 78ef28e63bec2ee4c139b5e3e0d691eb9bdc748d.

Signed-off-by: Chris Evich <cevich@redhat.com>
2018-10-29 18:32:41 -04:00
OpenShift Merge Robot d5b600171d
Merge pull request #1721 from vrothberg/fix-1695
unmount: fix error logic
2018-10-29 15:29:32 -07:00
OpenShift Merge Robot 5e071f47c0
Merge pull request #1720 from vrothberg/contributing-describe-changes
CONTRIBUTING.md: add section about describing changes
2018-10-29 15:29:27 -07:00
OpenShift Merge Robot a1b961af50
Merge pull request #1724 from baude/psformatchanges
make various changes to ps output
2018-10-29 15:17:13 -07:00
OpenShift Merge Robot 7052c8534e
Merge pull request #1723 from afbjorklund/local_config
Sync default config with libpod.conf
2018-10-29 15:17:04 -07:00
OpenShift Merge Robot 60ba26ab21
Merge pull request #1722 from baude/ps2space
Use two spaces to pad PS fields
2018-10-29 14:49:33 -07:00
baude 058f0e3681 make various changes to ps output
for backwards compatibility and auto-test, we needed a few changes
that slipped in when i reworked ps to be faster to be reverted. the
follow behaviours were reverted:

1. the is_infra column was redacted.  that appears to be a mistake on my
part.
2. a newline after ps prints its format was added
3. a newline prior to printing the headers was removed.

Signed-off-by: baude <bbaude@redhat.com>
2018-10-29 14:33:32 -05:00
Anders F Björklund 1c4880d3ef Sync default config with libpod.conf
Only changed libpod.conf file, which might not even be in use.

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2018-10-29 19:11:47 +01:00
baude 13b05ea476 Use two spaces to pad PS fields
Ed has asked that we revert to using two spaces for padding between PS fields.  I assume
this is for docker autotests.

Signed-off-by: baude <bbaude@redhat.com>
2018-10-29 12:08:41 -05:00
Valentin Rothberg 079208cdbc unmount: fix error logic
Only return `ErrCtrStateInvalid` errors when the mount counter is equal
to 1.  Also fix the "can't unmount [...] last mount[..]" error which
hasn't been returned when the error passed to `errors.Errorf()` is nil.

Fixes: #1695
Signed-off-by: Valentin Rothberg <vrothberg@suse.com>
2018-10-29 15:46:54 +01:00
baude 1dd7f13dfb get user and group information using securejoin and runc's user library
for the purposes of performance and security, we use securejoin to contstruct
the root fs's path so that symlinks are what they appear to be and no pointing
to something naughty.

then instead of chrooting to parse /etc/passwd|/etc/group, we now use the runc user/group
methods which saves us quite a bit of performance.

Signed-off-by: baude <bbaude@redhat.com>
2018-10-29 08:59:46 -05:00
Valentin Rothberg a36974585f CONTRIBUTING.md: add section about describing changes
Add a section about describing changes in commit messages.  GitHub tends
to drive the large part of discussions and change descriptions to the
corresponding pull requests and issues, but such information is lost in
the git history.  Not providing sufficient information in commit
messages is painful for reviewing and can cause issues while debugging.
It also complicates studying source code, where reading commit messages
and the code's git history is a common approach to better understand the
code.

Following the descriptions should be enforced by the maintainers of the
libpod project.  Pull requests containing commits without proper
descriptions should not be merged.

This change bases on the documentation of the Linux kernel v4.17:
https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html

Signed-off-by: Valentin Rothberg <vrothberg@suse.com>
2018-10-29 13:13:34 +01:00
OpenShift Merge Robot aef9d56ae2
Merge pull request #1696 from QiWang19/ExportForCrio
Change ParseDevice to exported name
2018-10-29 04:09:16 -07:00
Qi Wang 22390b3b04 Change to exported name in ParseDevice
Signed-off-by: Qi Wang <qiwan@redhat.com>
2018-10-29 06:39:39 -04:00
OpenShift Merge Robot 49555721ec
Merge pull request #1718 from rhatdan/vendor
Vendor in latest containers/storage
2018-10-26 11:44:09 -07:00
OpenShift Merge Robot a36dbc8a3f
Merge pull request #1717 from jwhonce/wip/unittest
Ensure test container in running state
2018-10-26 10:11:09 -07:00
Daniel J Walsh 1896f16a55
Vendor in latest containers/storage
We need this to start testing metacopy up for podman.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-10-26 11:17:27 -04:00
OpenShift Merge Robot aa853b2091
Merge pull request #1585 from rhatdan/labels
Add tests for selinux labels
2018-10-26 07:30:39 -07:00
OpenShift Merge Robot 6e1aeb06f8
Merge pull request #1637 from vrothberg/runlabel-execute-any-command
runlabel: run any command
2018-10-26 04:33:12 -07:00
OpenShift Merge Robot a2dc29746f
Merge pull request #1716 from baude/rmallps
fix bug in rm -fa parallel deletes
2018-10-26 01:32:36 -07:00
baude f641c2d938 fix bug in rm -fa parallel deletes
Signed-off-by: baude <bbaude@redhat.com>
2018-10-25 16:15:11 -05:00
OpenShift Merge Robot f6e7807fa5
Merge pull request #1709 from baude/parallelheur
Add --max-workers and heuristics for parallel operations
2018-10-25 13:08:45 -07:00
Jhon Honce d62fa127a1 Ensure test container in running state
* Save storage if tests fail

Fixes #1643

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2018-10-25 12:20:11 -07:00
Daniel J Walsh f9fb62c737
Add tests for selinux labels
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-10-25 09:33:08 -04:00
OpenShift Merge Robot 3efa068528
Merge pull request #1699 from baude/rund
run performance improvements
2018-10-25 05:59:31 -07:00
baude 3e5a5c68da Add --max-workers and heuristics for parallel operations
add a global flag for --max-workers so users can limit the number
of parallel operations for a given function.  also, when not limited
by max-workers, we implement a heuristic function that returns the
number of preferred parallel workers based on the number of CPUs and
the given operation.

Signed-off-by: baude <bbaude@redhat.com>
2018-10-25 07:50:46 -05:00
OpenShift Merge Robot 76d20f0735
Merge pull request #1712 from baude/cyphar
Increase security and performance when looking up groups
2018-10-25 05:35:59 -07:00
baude 6246942d37 Increase security and performance when looking up groups
We implement the securejoin method to make sure the paths to /etc/passwd and
/etc/group are not symlinks to something naughty or outside the container
image. And then instead of actually chrooting, we use the runc functions to
get information about a user.  The net result is increased security and
a a performance gain from 41ms to 100us.

Signed-off-by: baude <bbaude@redhat.com>
2018-10-25 06:42:43 -05:00
baude e2aef6341d run prepare in parallel
run prepare() -- which consists of creating a network namespace and
mounting the container image is now run in parallel.   This saves 25-40ms.

Signed-off-by: baude <bbaude@redhat.com>
2018-10-25 06:34:23 -05:00
OpenShift Merge Robot 57f778aed9
Merge pull request #1713 from baude/runcfail
downgrade runc due a rootless bug
2018-10-24 17:25:11 -07:00
baude 803efd4d38 downgrade runc due a rootless bug
Signed-off-by: baude <bbaude@redhat.com>
2018-10-24 14:25:31 -05:00
Valentin Rothberg 606a5cec8f runlabel: run any command
As discussed [1], the runlabel command should execute any command
specified in a label.  The reasoning behind is that we cannot restrict
which options are passed to Podman which thereby has full access to the
host (runlabels must be used with care).

With the updated semantics, runlabel will substitute the commands with a
basepath equal to "docker" or "podman" with "/proc/self/exe", and
otherwise leave the command unchanged to execute any other command on
the host.

[1] https://github.com/containers/libpod/pull/1607#issuecomment-428321382

Signed-off-by: Valentin Rothberg <vrothberg@suse.com>
2018-10-24 14:02:43 +02:00
OpenShift Merge Robot cde41c0b84
Merge pull request #1646 from QiWang19/addenvbud
Support auth file environment variable in podman build
2018-10-23 17:04:17 -07:00
OpenShift Merge Robot bf80717904
Merge pull request #1708 from rhatdan/docker
Eat our own dogfood
2018-10-23 16:41:43 -07:00
OpenShift Merge Robot a9929b40dc
Merge pull request #1684 from QiWang19/deviceman
Explain the device format in man pages
2018-10-23 15:18:14 -07:00
OpenShift Merge Robot 37e9e5667e
Merge pull request #1706 from giuseppe/fix-cidfile-rootless
create: fix writing cidfile when using rootless
2018-10-23 14:45:33 -07:00
OpenShift Merge Robot 28279ce6bd
Merge pull request #1666 from giuseppe/vendor-storage-overlay
vendor: update container/storage
2018-10-23 14:45:28 -07:00
Daniel J Walsh 9250747092
Eat our own dogfood
Switch all tests to use podman installed on the system, or Docker if podman
does not exist.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-10-23 17:36:37 -04:00
OpenShift Merge Robot 28d8d72a82
Merge pull request #1707 from afbjorklund/local_path
Add support for /usr/local installation
2018-10-23 14:29:43 -07:00
Giuseppe Scrivano 0a0dbc4692
vendor: update containers/storage
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-10-23 23:09:35 +02:00
Anders F Björklund 21458369a1 Add support for /usr/local installation
Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2018-10-23 22:25:59 +02:00
Giuseppe Scrivano dfc689efc9
create: fix writing cidfile when using rootless
prevent opening the same file twice, since we re-exec podman in
rootless mode.  While at it, also solve a possible race between the
check for the file and writing to it.  Another process could have
created the file in the meanwhile and we would just end up overwriting
it.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-10-23 22:13:17 +02:00