2207 Commits

Author SHA1 Message Date
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
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
aef9d56ae2 Merge pull request #1696 from QiWang19/ExportForCrio
Change ParseDevice to exported name
2018-10-29 04:09:16 -07:00
22390b3b04 Change to exported name in ParseDevice
Signed-off-by: Qi Wang <qiwan@redhat.com>
2018-10-29 06:39:39 -04:00
49555721ec Merge pull request #1718 from rhatdan/vendor
Vendor in latest containers/storage
2018-10-26 11:44:09 -07:00
a36dbc8a3f Merge pull request #1717 from jwhonce/wip/unittest
Ensure test container in running state
2018-10-26 10:11:09 -07:00
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
aa853b2091 Merge pull request #1585 from rhatdan/labels
Add tests for selinux labels
2018-10-26 07:30:39 -07:00
6e1aeb06f8 Merge pull request #1637 from vrothberg/runlabel-execute-any-command
runlabel: run any command
2018-10-26 04:33:12 -07:00
a2dc29746f Merge pull request #1716 from baude/rmallps
fix bug in rm -fa parallel deletes
2018-10-26 01:32:36 -07:00
f641c2d938 fix bug in rm -fa parallel deletes
Signed-off-by: baude <bbaude@redhat.com>
2018-10-25 16:15:11 -05:00
f6e7807fa5 Merge pull request #1709 from baude/parallelheur
Add --max-workers and heuristics for parallel operations
2018-10-25 13:08:45 -07:00
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
f9fb62c737 Add tests for selinux labels
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-10-25 09:33:08 -04:00
3efa068528 Merge pull request #1699 from baude/rund
run performance improvements
2018-10-25 05:59:31 -07:00
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
76d20f0735 Merge pull request #1712 from baude/cyphar
Increase security and performance when looking up groups
2018-10-25 05:35:59 -07:00
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
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
57f778aed9 Merge pull request #1713 from baude/runcfail
downgrade runc due a rootless bug
2018-10-24 17:25:11 -07:00
803efd4d38 downgrade runc due a rootless bug
Signed-off-by: baude <bbaude@redhat.com>
2018-10-24 14:25:31 -05:00
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
cde41c0b84 Merge pull request #1646 from QiWang19/addenvbud
Support auth file environment variable in podman build
2018-10-23 17:04:17 -07:00
bf80717904 Merge pull request #1708 from rhatdan/docker
Eat our own dogfood
2018-10-23 16:41:43 -07:00
a9929b40dc Merge pull request #1684 from QiWang19/deviceman
Explain the device format in man pages
2018-10-23 15:18:14 -07:00
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
28279ce6bd Merge pull request #1666 from giuseppe/vendor-storage-overlay
vendor: update container/storage
2018-10-23 14:45:28 -07:00
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
28d8d72a82 Merge pull request #1707 from afbjorklund/local_path
Add support for /usr/local installation
2018-10-23 14:29:43 -07:00
0a0dbc4692 vendor: update containers/storage
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-10-23 23:09:35 +02:00
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
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
c285bd664e Explain the device format in man pages
Signed-off-by: Qi Wang <qiwan@redhat.com>
2018-10-23 15:14:44 -04:00
10bab99ea0 Merge pull request #1705 from baude/twostepjson
read conmon output and convert to json in two steps
2018-10-23 11:56:02 -07:00
318e33ce2c read conmon output and convert to json in two steps
when reading the output from conmon using the JSON methods, it appears that
JSON marshalling is higher in pprof than it really is because the pipe is
"waiting" for a response. this gives us a clearer look at the real CPU/time
consumers.

Signed-off-by: baude <bbaude@redhat.com>
2018-10-23 13:21:33 -05:00
d043ac4de5 Merge pull request #1677 from cevich/cirrus_latest_buildah
Cirrus: Use images w/ buildah fix
2018-10-23 09:56:12 -07:00
2c7ad7af50 Cirrus: Use images w/ buildah fix
Ref: https://github.com/containers/buildah/pull/1109

Signed-off-by: Chris Evich <cevich@redhat.com>
2018-10-23 12:25:32 -04:00
8ff9742480 Merge pull request #1687 from rhatdan/vendor
Move selinux label reservations to containers storage.
2018-10-23 09:22:12 -07:00
c019830a75 Merge pull request #1662 from adrianreber/all-and-latest
Add --all and --latest to checkpoint/restore
2018-10-23 09:22:03 -07:00
41a8bbdbe0 Merge pull request #1649 from jwhonce/issue/1641
Downgrade code to support python3.4
2018-10-23 09:05:29 -07:00
41a4827f84 Merge pull request #1638 from baude/fastps
Make podman ps fast
2018-10-23 09:05:20 -07:00
02a76a82b6 Merge pull request #1686 from mheon/rootless_firewall
Use more reliable check for rootless for firewall init
2018-10-23 08:17:47 -07:00
f09f9be43c Merge pull request #1664 from adrianreber/port-l
Fix podman port -l
2018-10-23 08:05:20 -07:00
e8d69030b6 Add --all and --latest to checkpoint/restore
This add the convenience options --all and --latest to the subcommands
checkpoint and restore.

Signed-off-by: Adrian Reber <areber@redhat.com>
2018-10-23 17:01:30 +02:00
c10ac01395 Use the newly added getAllOrLatestContainers() function
This removes duplicate code paths which has been previously factored out
as getAllOrLatestContainers().

Signed-off-by: Adrian Reber <areber@redhat.com>
2018-10-23 17:01:30 +02:00
fea37b387c Use the new checkAllAndLatest() function
Instead of duplicating the same code in multiple commands this uses the
newly added function checkAllAndLatest() instead.

Signed-off-by: Adrian Reber <areber@redhat.com>
2018-10-23 17:01:30 +02:00
215cf7b898 Also factor out getAllOrLatestContainers() function
Just as the checkAllAndLatest() function the new code in
getAllOrLatestContainers() is used in some commands and duplicated. This
factors out this code to be used in other places without duplicating it.

Signed-off-by: Adrian Reber <areber@redhat.com>
2018-10-23 17:01:30 +02:00
9d9493e41a Add checkAllAndLatest() function
The check about the --all and --latest option is used and repeated and
some commands. Factor it out and put it into common.

Signed-off-by: Adrian Reber <areber@redhat.com>
2018-10-23 17:01:30 +02:00
a7ea7e9d5c Downgrade code to support python3.4
* Added tox configuration to test python 3.4, 3.5 and 3.6.
  Tox testing not enabled on every PR
* Updated MANIFEST.ini to support tox
* Correct comments

Fixes #1641

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2018-10-23 07:58:48 -07:00
a95d71f113 Allow containers/storage to handle on SELinux labeling
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-10-23 10:57:23 -04:00