Commit Graph

1062 Commits

Author SHA1 Message Date
Ed Santiago
cebb7ebbee ps: now works with --size and nonroot
Revert the error check from #2832. This is not strictly
necessary, since 'podman ps --size' now works perfectly
fine in nonroot because some recent change (Giuseppe's,
presumably) masked os.Geteuid() return 0... but removing
for maintainability's sake.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-04-09 12:55:19 -06:00
OpenShift Merge Robot
8eb03d3e53 Merge pull request #2746 from baude/remotecreate
podman-remote create|run
2019-04-08 10:16:34 -07:00
OpenShift Merge Robot
7f8e9bd54c Merge pull request #2845 from QiWang19/cpdir
fix bug podman cp directory
2019-04-08 07:48:54 -07:00
baude
ba65301c95 podman-remote create|run
add the ability to create and run containers via the podman-remote
client.

we now create an intermediate layer from the the create/run cli flags.
the intermediate layer can be converted into a createconfig or into a
varlink struct.  Once transported, the varlink struct can be converted
back to an intermediate layer and then to a createconfig.

remote terminals are not supported yet.

Signed-off-by: baude <bbaude@redhat.com>
2019-04-08 09:05:31 -05:00
Brent Baude
23602de816 Revert "Switch to golangci-lint"
Signed-off-by: baude <bbaude@redhat.com>
2019-04-05 20:09:45 -05:00
Daniel J Walsh
bc320be00b Merge pull request #2742 from openSUSE/golangci-lint
Switch to golangci-lint
2019-04-05 11:02:41 -04:00
OpenShift Merge Robot
ed8bd80d3f Merge pull request #2856 from haircommander/kube-entrypoint
Respect image entrypoint in play kube
2019-04-05 05:56:29 -07:00
Giuseppe Scrivano
ebc8999fcf podman: enable kube for rootless
Closes: https://github.com/containers/libpod/issues/2852

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-05 09:34:23 +02:00
Giuseppe Scrivano
990bf271c2 kube: correctly set the default for MemorySwappiness
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-04-05 09:34:22 +02:00
Peter Hunt
65372ee3ab Respect image entrypoint in play kube
Before we ignored an entrypoint specified in an image, which lead to crashes when a user assumed the entrypoint would be used

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-04-04 22:31:36 -04:00
baude
dc94dbd3c1 podman-remote image tree
add the ability for the podman-remote client to be able to print an
image tree.

Signed-off-by: baude <bbaude@redhat.com>
2019-04-04 14:41:50 -05:00
Qi Wang
84620021b0 fix bug podman cp directory
`podman cp` used to copy the contents under the source directory to the destination. But according to the specification in podman-cp.md. it should copy the whole directory to the destination if the destination directory already exists.
- src dir ends with /., copy the contents to dest dir
- src dir does not end with /.
 - dest dir /home does not exist, copy the contents
 - dest dir /home exists, copy the directory

```
$ sudo podman cp /home/qiwan/Documents/empty 7c47:/home
$ sudo podman exec -it 7c47 ls /home
$

$ sudo podman cp /home/qiwan/Documents/empty 7c47:/home
$ sudo podman exec -it 7c47 ls /home
empty

```

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-04-04 12:45:12 -04:00
OpenShift Merge Robot
1759eb09e1 Merge pull request #2706 from giuseppe/rootless-single-usernamespace
rootless: single user namespace
2019-04-04 09:21:09 -07:00
Sascha Grunert
81a4451fea Add deadcode linter
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2019-04-04 09:07:05 +02:00
Sascha Grunert
ab4d70d55c Update run tests to be skipped when not supported
Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2019-04-04 08:49:52 +02:00
OpenShift Merge Robot
4bda5378b1 Merge pull request #2832 from mheon/rootless_size_errors
--size does not work with rootless at present
2019-04-03 16:29:30 -07:00
OpenShift Merge Robot
7a2bca54f0 Merge pull request #2651 from mheon/prevent_null_deref
Fix a potential segfault in podman search
2019-04-03 13:51:40 -07:00
Matthew Heon
c6255537d9 Fix a potential segfault in podman search
When generating headers for search, we unconditionally
access element 0 of an array, and I saw this segfault in our CI.
There's no reason we have to do this, we're just going through it
to get field names with reflect, so just make a new copy of the
struct in question.

Also, move this code, which is only for CLI display, into
cmd/podman from libpod/image.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-04-03 15:11:08 -04:00
Matthew Heon
c1cd9a3c6d --size does not work with rootless at present
We'd need to join multiple container's user namespaces, which is
not possible for now. The rootless single userns patches under
development by Giuseppe will fix this, but won't land in 1.2.x.

For now, disable --size as rootless.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-04-03 10:57:03 -04:00
baude
576a80b0d7 add remote-client diff
the remote client now can run the diff command to report changes,
modifications, and deletions in an image or container.

Signed-off-by: baude <bbaude@redhat.com>
2019-04-03 09:52:38 -05:00
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
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
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
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
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
df5b6e29a6 Merge pull request #2784 from QiWang19/digest
fix bug remote-podman images --digests
2019-03-28 16:51:31 -07: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
Valentin Rothberg
a5443a532b vendor buildah, image, storage, cni
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-03-28 15:12:26 +01:00
OpenShift Merge Robot
e7a2eecf5f Merge pull request #2760 from mheon/misc_small_changes
Remove ulele/deepcopier in favor of JSON deep copy
2019-03-28 07:06:31 -07:00
Peter Hunt
0d0ad59641 Default to SELinux private label for play kube mounts
Before, there were SELinux denials when a volume was bind-mounted by podman play kube.
Partially fix this by setting the default private label for mounts created by play kube (with DirectoryOrCreate)
For volumes mounted as Directory, the user will have to set their own SELinux permissions on the mount point

also remove left over debugging print statement

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-03-28 09:54:31 -04:00
baude
3423c5a8c9 Add watch mode to podman ps
allows users to "watch" the output of podman ps on a set interval in
seconds. in watch mode, the screen is cleared between intervals as well.

podman -ps -w1 watches on 1 second intervals

Signed-off-by: baude <bbaude@redhat.com>
2019-03-28 08:34:27 -05:00
Qi Wang
2729695892 fix bug system df add blank space to the output
fix typo in Containers space usage: of podman system df -v, add a space for created time Change format string to const

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-03-28 09:13:40 -04:00
Qi Wang
fd7a9c4a96 fix bug remote-podman images --digests
Add `digest` field to Image struct and update API.md
Show image digests when using --digests in podman-remote.

```
$ PODMAN_VARLINK_ADDRESS="tcp:127.0.0.1:1234" sudo bin/podman-remote images --digests
REPOSITORY                  TAG      DIGEST                                                                    IMAGE ID       CREATED       SIZE
docker.io/library/alpine    latest   sha256:d05ecd4520cab5d9e5d877595fb0532aadcd6c90f4bbc837bc11679f704c4c82   5cb3aa00f899   2 weeks ago   5.79 MB
docker.io/library/busybox   latest   sha256:4415a904b1aca178c2450fd54928ab362825e863c0ad5452fd020e92f7a6a47e   d8233ab899d4   5 weeks ago   1.42 MB
```

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-03-27 23:09:35 -04:00
OpenShift Merge Robot
850326cc19 Merge pull request #2777 from edsantiago/system_df_invalid_arg
system df: reject invalid arguments
2019-03-27 17:03:51 -07:00
Matthew Heon
179a66f1a0 Use spaces instead of tab for JSON marshal indent
The jsoniterator library believes that panic() is a reasonable
response to being told to indent JSON with a tab. So use spaces
instead.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-27 20:00:31 -04:00
Matthew Heon
589486e3e5 Fix gofmt
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-27 20:00:31 -04:00
Matthew Heon
5ed62991dc Remove ulele/deepcopier in favor of JSON deep copy
We have a very high performance JSON library that doesn't need to
perform code generation. Let's use it instead of our questionably
performant, reflection-dependent deep copy library.

Most changes because some functions can now return errors.

Also converts cmd/podman to use jsoniter, instead of pkg/json,
for increased performance.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-27 20:00:31 -04:00
OpenShift Merge Robot
340eeec1b6 Merge pull request #2747 from mheon/dns_none
Add --dns=none
2019-03-27 10:49:42 -07:00
Matthew Heon
0cd92eae65 Resolve review comments
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-27 10:12:18 -04:00
Matthew Heon
236300d028 Add --no-hosts flag to disable management of /etc/hosts
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-27 10:12:18 -04:00
Ed Santiago
bf75ecd4d1 system df: reject invalid arguments
Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-27 07:58:42 -06:00
Giuseppe Scrivano
aacc5a8632 rootless: fix regression when using exec on old containers
fallback to the previous behavior of joining only the user namespace,
when we cannot join the conmon userns+mount namespaces.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-27 14:04:35 +01:00
baude
7f2221d48f size is optional for container inspection
on the remote client, if a user wants to know the rootfs size of a
container, a -s should be passed.  this corrects a behavior where size
was shown by default.

Fixes #2765

Signed-off-by: baude <bbaude@redhat.com>
2019-03-26 10:14:58 -05:00
OpenShift Merge Robot
60b009af4e Merge pull request #2758 from baude/eventsDied
Add "died" event
2019-03-26 07:09:17 -07:00
OpenShift Merge Robot
9e556530d2 Merge pull request #2498 from QiWang19/sysdf
podman system df- show podman disk usage
2019-03-26 04:51:06 -07:00
Qi Wang
25e0f87069 system df to show podman disk usage
Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-03-25 15:05:26 -04:00
baude
e730fc6093 Add "died" event
We have a new event for container 'Exited' which has been renamed to
'died'.

also removed the stream bool from the varlink endpoint for events
because it can be determined by the varlink more value.

Signed-off-by: baude <bbaude@redhat.com>
2019-03-25 10:28:50 -05:00