2207 Commits

Author SHA1 Message Date
bbbdd45b2c spec: bind mount /sys only when userNS are enabled
Fix the test for checking when /sys must be bind mounted from the
host.  It should be done only when userNS are enabled (the
!UsernsMode.IsHost() check is not enough for that).

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1349
Approved by: rhatdan
2018-08-27 12:49:32 +00:00
fe00977fa5 rootless, tests: add test for --uts=host
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1349
Approved by: rhatdan
2018-08-27 12:49:32 +00:00
935e0bbc76 Dockerfile.Fedora: install slirp4netns
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1349
Approved by: rhatdan
2018-08-27 12:49:32 +00:00
8b5823a62d rootless: don't use kill --all
The OCI runtime might use the cgroups to see what PIDs
are inside the container, but that doesn't work with rootless
containers.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1331
Approved by: rhatdan
2018-08-26 07:22:42 +00:00
c5753f57c1 rootless: exec handle processes that create an user namespace
Manage the case where the main process of the container creates and
joins a new user namespace.

In this case we want to join only the first child in the new
hierarchy, which is the user namespace that was used to create the
container.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1331
Approved by: rhatdan
2018-08-26 07:22:42 +00:00
720eb85ba5 rootless: fix exec
We cannot re-exec into a new user namespace to gain privileges and
access an existing as the new namespace is not the owner of the
existing container.

"unshare" is used to join the user namespace of the target container.

The current implementation assumes that the main process of the
container didn't create a new user namespace.

Since in the setup phase we are not running with euid=0, we must skip
the setup for containers/storage.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1331
Approved by: rhatdan
2018-08-26 07:22:42 +00:00
1ac4dbb508 Move whale-says test to end of baseline
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>

Closes: #1346
Approved by: rhatdan
2018-08-25 18:14:13 +00:00
b090d953ca Merge pull request #1343 from mheon/bump-0.8.4
Bump to 0.8.4
2018-08-24 17:17:53 -04:00
34ed359595 Bump gitvalidation epoch
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-08-24 17:16:36 -04:00
017e2d3468 Bump to v0.8.5-dev
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-08-24 17:16:36 -04:00
9f9b8cffe5 Bump to v0.8.4
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
v0.8.4
2018-08-24 17:16:33 -04:00
717b038911 Merge pull request #1342 from mheon/add_release_notes
Add release notes for 0.8.4
2018-08-24 17:15:22 -04:00
fdc1a6db12 Add release notes
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-08-24 17:08:53 -04:00
347e934736 Regenerate easyjson after rebase
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #1322
Approved by: mheon
2018-08-24 19:19:43 +00:00
20a625ba77 Vendor easyjson code to fix build
To ensure we can build without easyjson installed, vendor the
easyjson repository as the generated files use the easyjson
library.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #1322
Approved by: mheon
2018-08-24 19:19:43 +00:00
714dbbda9e Swap from FFJSON to easyjson
FFJSON has serialization differences versus stock Go - namely, it
does not respect the MarshalText() and UnmarshalText() methods,
particularly on []byte, which causes incompatability with
pre-FFJSON containers which contained DNS servers.

EasyJSON does not have these issues, and might even be slightly
faster.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #1322
Approved by: mheon
2018-08-24 19:19:43 +00:00
bd080b4530 Make 'make clean' remove FFJSON generated code
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #1322
Approved by: mheon
2018-08-24 19:19:43 +00:00
3473701de2 rootless: allow to override policy.json by the user
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1336
Approved by: mheon
2018-08-24 18:56:19 +00:00
facdfbc596 add completion for --pod in run and create
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1339
Approved by: mheon
2018-08-24 18:02:26 +00:00
2cde9540f1 Fixed formatting and lowered verbosity of pod ps
CtrInfo now is formatted in the way originally intended. s/Number Of Containers/# Of Containers and s/Infra Container ID/Infra ID. Make json camel case.

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1338
Approved by: mheon
2018-08-24 17:37:33 +00:00
72e41c81aa Do not try to enable AppArmor in rootless mode
When in rootless mode it's not possible to load profiles or
check which profiles are loaded.
Added a few baseline tests to check all possible cases.

Signed-off-by: Marco Vedovati <mvedovati@suse.com>

Closes: #1250
Approved by: mheon
2018-08-24 17:08:11 +00:00
af9f83f11c exposes tcp port only if no proto specified.
Also it fix the issue of exposing both tc/udp port even if
only one proto specified.

Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>

Closes: #1325
Approved by: mheon
2018-08-24 14:31:38 +00:00
f1b4f43d75 rpm-spec: use skopeo-containers instead of containers-common
skopeo-containers is available everywhere, but not containers-common

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>

Closes: #1332
Approved by: rhatdan
2018-08-24 12:17:10 +00:00
e7fbf329c2 Reveal information about container capabilities
I am often asked about the list of capabilities availabel to a container.
We should be listing this data in the inspect command for effective
capabilities and the bounding set.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #1335
Approved by: TomSweeneyRedHat
2018-08-24 12:16:19 +00:00
16465007d0 Vendor in latest projectatomic/buildah
Fixes to podman build for unknown image and ADD with url
when doing --layers.

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #1330
Approved by: mheon
2018-08-23 19:11:09 +00:00
4c00dc66df Refactor error checking in With*NSFromPod options
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1187
Approved by: mheon
2018-08-23 18:16:28 +00:00
0e6266858a Fixing network ns segfault
As well as small style corrections, update pod_top_test to use CreatePod, and move handling of adding a container to the pod's namespace from container_internal_linux to libpod/option.

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1187
Approved by: mheon
2018-08-23 18:16:28 +00:00
2a7449362f Change pause container to infra container
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1187
Approved by: mheon
2018-08-23 18:16:28 +00:00
697b46430a Support pause containers in varlink
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1187
Approved by: mheon
2018-08-23 18:16:28 +00:00
d5e690914d Added option to share kernel namespaces in libpod and podman
A pause container is added to the pod if the user opts in. The default pause image and command can be overridden. Pause containers are ignored in ps unless the -a option is present. Pod inspect and pod ps show shared namespaces and pause container. A pause container can't be removed with podman rm, and a pod can be removed if it only has a pause container.

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1187
Approved by: mheon
2018-08-23 18:16:28 +00:00
63dd200e7e Changed GetContainerStats to return ErrCtrStateInvalid
This results in some functionality changes:

If a ErrCtrStateInvalid is returned to GetPodStats, the container is ommitted from the stats.
As such, if an empty slice of Container stats are returned to GetPodStats in varlink, an error will occur.
GetContainerStats will return the ErrCtrStateInvalid as well.
Finally, if ErrCtrStateInvalid is returned to the podman stats call, the container will be ommitted from the stats.

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1319
Approved by: baude
2018-08-23 15:58:08 +00:00
3df6332a65 Add GetPodStats to varlink
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1319
Approved by: baude
2018-08-23 15:58:08 +00:00
7310697b73 rpm-spec: update distro-specific dependencies
remove slirp4netns as hard dep as it isn't available on rhel7.

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>

Closes: #1328
Approved by: baude
2018-08-23 15:29:47 +00:00
88df4ea0f9 Add podman pod top
Using the vendored changes from psgo, incorporate JoinNamespaceAndProcessInfoByPids to get process information for each pid namespace of running containers in the pod. Also added a man page, and tests.

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1298
Approved by: mheon
2018-08-23 15:01:17 +00:00
6c253d0055 Include pod stats and top in commands/completions
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1298
Approved by: mheon
2018-08-23 15:01:17 +00:00
f11020702d Vendor changes to psgo
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1298
Approved by: mheon
2018-08-23 15:01:17 +00:00
c32074fa4f Fix syntax description of --ulimit command
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #1327
Approved by: vrothberg
2018-08-23 12:49:45 +00:00
e0c2fcadd2 Swap test image in exec test to fedora for useradd
We need a useradd binary in the container for this test, so swap
from Alpine to fedora-minimal.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #1315
Approved by: vrothberg
2018-08-23 12:07:59 +00:00
c3ec44b5a7 Add tests for exec --user
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #1315
Approved by: vrothberg
2018-08-23 12:07:59 +00:00
c276a13880 Properly translate users into runc format for exec
Runc exec expects the --user flag to be formatted as UID:GID.
Use chrootuser code to translate whatever user is passed to exec
into this format.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #1315
Approved by: vrothberg
2018-08-23 12:07:59 +00:00
4a95ef4a4e test: ad more tests for rootless containers
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1323
Approved by: umohnani8
2018-08-22 20:32:27 +00:00
77bcc89d52 rootless: fix --net host --privileged
Closes: https://github.com/containers/libpod/issues/1313

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1323
Approved by: umohnani8
2018-08-22 20:32:27 +00:00
b4420e22fc Fix a bug with hook ALWAYS matching with a process
When a non-nil process was used and a hook was set to match
always, this would not actually match. Fix this.

Fixes: #1308

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #1311
Approved by: rhatdan
2018-08-22 11:48:43 +00:00
149481a571 Fixed segfault in stats where container had netNS none or from container
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1306
Approved by: rhatdan
2018-08-21 15:37:39 +00:00
021027a24b Enable pod stats with short ID and name
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1307
Approved by: rhatdan
2018-08-21 14:34:08 +00:00
7e94fbb493 Touch up cert-dir in man pages
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>

Closes: #1312
Approved by: rhatdan
2018-08-21 14:29:15 +00:00
803dbf2041 make dbuild fixed on ubuntu/debian
Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>

Closes: #1309
Approved by: mheon
2018-08-21 12:52:27 +00:00
40a60500ea vendor latest github.com/urfave/cli
Change from an external patched branch to the upstream master. The
vendored code is indentical to the previous one.

Signed-off-by: Valentin Rothberg <vrothberg@suse.com>

Closes: #1310
Approved by: mheon
2018-08-21 12:51:13 +00:00
75588a4333 Add retry decorator for flakey tests
* Update doc strings

Signed-off-by: Jhon Honce <jhonce@redhat.com>

Closes: #1302
Approved by: baude
2018-08-20 21:07:09 +00:00
937398abcf Update error message from reviews
Signed-off-by: Jhon Honce <jhonce@redhat.com>

Closes: #1296
Approved by: rhatdan
2018-08-20 15:26:09 +00:00