Commit Graph

1167 Commits

Author SHA1 Message Date
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
baude bb69004b8c podman health check phase3
podman will not start a transient service and timer for healthchecks.
this handles the tracking of the timing for health checks.

added the 'started' status which represents the time that a container is
in its start-period.

the systemd timing can be disabled with an env variable of
DISABLE_HC_SYSTEMD="true".

added filter for ps where --filter health=[starting, healthy, unhealthy]
can now be used.

Signed-off-by: baude <bbaude@redhat.com>
2019-03-22 14:58:44 -05:00
Giuseppe Scrivano e31a3d3841
utils: drop dead function
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-21 20:14:40 +01:00
Matthew Heon 9516f28808 Make "stopped" a valid state that maps to "exited"
Fixes #2526

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-21 10:00:25 -04:00
Giuseppe Scrivano a53c768409
podman: do not split --env on comma
if --env "a=b,c" is used, do not split into a=b and c=.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-20 23:22:22 +01:00
Giuseppe Scrivano ab576e8577
rootless: implement pod restart
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-19 15:01:53 +01:00
Giuseppe Scrivano ffc08860ce
rootless: reimplement restart with rootless.Argument()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-19 15:01:52 +01:00
Giuseppe Scrivano 4ab7462add
rootless, rm: fix retcode when the container is not found
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-19 15:01:50 +01:00
Giuseppe Scrivano 3f96d3617b
rootless: fix ps command
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-19 15:01:50 +01:00
Giuseppe Scrivano 69593923e0
rootless: fix pod kill
we don't need to access the storage

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-19 15:01:49 +01:00
OpenShift Merge Robot ac523cbe2b
Merge pull request #2688 from baude/issue2671
support GO template {{ json . }}
2019-03-18 15:51:31 -07:00
OpenShift Merge Robot 7ed8366834
Merge pull request #2696 from haircommander/play-kube-dash-u
Incorporate image inspect data in play kube
2019-03-18 14:16:16 -07:00
OpenShift Merge Robot 07e10d9dd6
Merge pull request #2700 from edsantiago/podman_umount_args
podman umount: error out if called with no args
2019-03-18 14:01:43 -07:00
Ed Santiago abf3500e8f podman umount: error out if called with no args
Inspired by #2684, I wrote a CI test to look for other such
instances in which a command is invoked without a required
argument. 'podman umount' seems to be the only one, and
solution is simple: checkAllAndLatest() already does the
check for us.

Resolve a few other problems uncovered by testing:

  podman mount: indicate that CONTAINER arg is optional

  podman pod stats: ditto

  podman generate kube: remove check for -l (latest) flag,
    it isn't actually implemented.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-18 14:05:17 -06:00
OpenShift Merge Robot 41019f7472
Merge pull request #2632 from debarshiray/wip/rishi/podman-rm-exit-with-125-for-bogus-and-running
Make 'podman rm' exit with 125 if it had a bogus & a running container
2019-03-18 12:52:07 -07:00
baude 6aa8d14745 support GO template {{ json . }}
for podman version, we now support a GO template for json output.

fixes #2671

Signed-off-by: baude <bbaude@redhat.com>
2019-03-18 13:46:35 -05:00
Peter Hunt ce81ca3631 Incorporate user from image inspect data in play kube
before, when an image signified a user, play kube ignored it. Incorporate that information.

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-03-18 14:19:52 -04:00
OpenShift Merge Robot 9289ecd478
Merge pull request #2674 from rhatdan/load
Cleanup messages on podman load
2019-03-18 10:49:34 -07:00
OpenShift Merge Robot 3716235e53
Merge pull request #2687 from rhatdan/inspect
Fix cut and paste errors in podman-pod-inspect
2019-03-18 09:31:38 -07:00
Daniel J Walsh d0ee203986
Cleanup messages on podman load
If user does not specify file or redirect for stdin, then
throw an error

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-18 12:23:41 -04:00
OpenShift Merge Robot cd5f4786ce
Merge pull request #2684 from giuseppe/fix-crash-pod-inspect
pod: fix segfault when there are no arguments to inspect
2019-03-18 06:14:53 -07:00
Daniel J Walsh 776040e987
Fix cut and paste errors in podman-pod-inspect
Help information and errors should refer to pod inspection, not container and
image inspection.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-18 08:59:47 -04:00
OpenShift Merge Robot 122d00f67f
Merge pull request #2683 from giuseppe/fix-pod-top
rootless: fix pod top
2019-03-18 05:00:15 -07:00
Giuseppe Scrivano 46b74a8ff8
rootless: fix pod top
we need to join the namespace of the target pod.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-18 11:40:22 +01:00
Giuseppe Scrivano 7fee7d833c
pod: fix segfault when there are no arguments to inspect
Closes: https://github.com/containers/libpod/issues/2681

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-18 09:37:43 +01:00
Ed Santiago 8a570b2dd2 podman image tree: fix usage message
Minor fix to Use message: add IMAGE argument. (I'm a stickler
for this because my zsh completion is self-generating, from
the --help messages).

Also, sort 'tree' before 'trust' in man page.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-16 08:09:35 -06:00
OpenShift Merge Robot 97fb495718
Merge pull request #2620 from baude/multilogs
display logs for multiple containers at the same time
2019-03-16 04:21:32 -07:00
OpenShift Merge Robot 37467beaf9
Merge pull request #2664 from kunalkushwaha/ps-port-fix
port grouping in ps command output
2019-03-16 04:03:38 -07:00
baude 5e86acd591 display logs for multiple containers at the same time
add the ability for users to specify more than one container at a time
while using podman logs.  If more than one container is being displayed,
podman will also prepend a shortened container id of the container on
the log line.

also, enabled the podman-remote logs command during the refactoring of
the above ability.

fixes issue #2219

Signed-off-by: baude <bbaude@redhat.com>
2019-03-15 13:41:01 -05:00
OpenShift Merge Robot 6e4c32967e
Merge pull request #2595 from jwhonce/bug/1677908
Add --replace flag to "podman container runlabel"
2019-03-15 10:52:57 -07:00
Debarshi Ray 082d792693 Make 'podman rm' exit with 125 if it had a bogus & a running container
Getting a list of containers, and then deleting them are two separate
fallible steps that can run into different sets of errors. eg., in the
case of a bogus missing container and a container that's running or
paused, the first step will only trigger libpod.ErrNoSuchCtr. At this
point it might appear that the exit code ought to be 1. However, when
attempting the deletion, it will fail once more due to the status of
the running or paused container. Since libpod.ErrNoSuchCtr is no longer
the only error encountered, the exit code should be reset to 125.

This problem is currently masked for rootless usage due to commit
35432ecaae ("rootless: fix rm when uid in the container != 0").

Fixes: 85db895012 ("rm: set exit code to 1 if a specified ...")
       e41279b902 ("Change exit code to 1 on podman rm ...")

Signed-off-by: Debarshi Ray <rishi@fedoraproject.org>
2019-03-15 18:28:47 +01:00
OpenShift Merge Robot a73814cc67
Merge pull request #2646 from giuseppe/fix-build-order
build: fix build DIR -t TAG
2019-03-15 07:01:37 -07:00
OpenShift Merge Robot ccf991f530
Merge pull request #2633 from edsantiago/default_default
Usage messages: deduplicate '(default true)' et al
2019-03-15 06:22:46 -07:00
Giuseppe Scrivano fc65d71df2
build: fix build DIR -t TAG
accept also the order "build DIR -t TAG"

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-15 10:39:17 +01:00
Kunal Kushwaha 9a268dd3b4 port grouping in ps command output
continuous published ports are grouped in ps output.
bugfix: #1358

Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2019-03-15 14:53:49 +09:00
Ed Santiago 1e124306db save-load-export: clear cli-parsing default
...in order to silence Cobra's usually-helpful "(default xxx)"
message.

Initialization is now done in code, by testing for empty string
and setting that to /dev/std{in,out} as appropriate; make special
note of load.go where there's mild duplication between a local
variable and cliconfig.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-14 12:15:45 -06:00
OpenShift Merge Robot fc5951ad55
Merge pull request #1642 from kunalkushwaha/image-tree
Tree implementation for podman images
2019-03-14 09:53:49 -07:00
OpenShift Merge Robot 296c61d896
Merge pull request #2638 from jwhonce/issue/1959
Corrected detach man pages and code comments
2019-03-14 05:49:24 -07:00
OpenShift Merge Robot fb5f8ebcb6
Merge pull request #2624 from edsantiago/inspect_usability
Usability cleanup for 'inspect'
2019-03-14 00:31:22 -07:00
Kunal Kushwaha a4b3b9ffbb Tree implementation for podman images
Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2019-03-14 11:22:06 +09:00
Ed Santiago 8f82edbcb3 Usage messages: deduplicate '(default true)' et al
Remove hardcoded '(default: true)' strings from bool flags,
and '(default this-or-that)' from string flags.

First because it's unmaintainable duplication that would cause
confusion should someone ever change the default and not notice
the message.

Second, because cobra[1] already prints '(default XXXX)' for
all options with non-false non-nil default. So in each of
these cases, current podman help behavior is:

    $ podman login --help
    ...
       --tls-verify  Require HTTPS ... (default: true) (default true)

This PR eliminates that duplication.

 [1] actually spf13/pflag/flag.go

The only nontrivial one of these is start.go, where the default
for sigProxy depends on the --attach flag. Solution: change
the command-line default to false, and implement the new
conditional default in logic. Bonus: removed unnecessary
check, because now if sigProxy is set without --attach,
we can guarantee that it was done by the user. But please
pay close scrutiny to this particular section in case
there's something I missed.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-13 16:34:31 -06:00
Jhon Honce f29a765573 Corrected detach man pages and code comments
* Updated documentation to match code

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2019-03-13 14:16:37 -07:00
Jhon Honce 504a0ff72f Add --replace flag to "podman container runlabel"
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1677908

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2019-03-13 13:16:49 -07:00
Giuseppe Scrivano 17b60891b6
rm: fix cleanup race
we fire the cleanup process asynchronously so we might race with a
command like: podman run --rm --name foo ... && podman run --rm --name foo

Fix it by ensuring the container is deleted before we exit.  This
will race with the "cleanup" process, but it is fine as one of the two
commands will fail with ErrNoSuchCtr while the other succeeds.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-13 20:26:56 +01:00
Ed Santiago 360487ab6d Add 'podman events' to podman(1)
Also: enforce noSubArgs for podman events

Also: remove unnecessary '[flags]' from Use message (Cobra
adds it automatically)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-13 10:22:10 -06:00
Ed Santiago 3de5e4a99f Usability cleanup for 'inspect'
Make the usage messages (and options) different between
podman inspect, podman image inspect, and podman container inspect.

Disable inapplicable options (-l, -s) for podman image inspect

Disable -t (type) when the type is implicit through the subcommand.

Update man page to reflect differences in usage.

Fix broken test.

Uglier than desirable due to Go and Cobra limitations

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-13 08:29:52 -06:00
Ed Santiago 1d49e7b73f minor typo fix in 'podman top' usage
Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-12 16:29:54 -06:00
OpenShift Merge Robot 883566fbc0
Merge pull request #2562 from baude/healtcheckphase2
healthcheck phase 2
2019-03-12 13:09:13 -07:00
baude 03716cf7f3 healtcheck phase 2
integration of healthcheck into create and run as well as inspect.
healthcheck enhancements are as follows:

* add the following options to create|run so that non-docker images can
define healthchecks at the container level.
  * --healthcheck-command
  * --healthcheck-retries
  * --healthcheck-interval
  * --healthcheck-start-period

* podman create|run --healthcheck-command=none disables healthcheck as
described by an image.
* the healthcheck itself and the healthcheck "history" can now be
observed in podman inspect
* added the wiring for healthcheck history which logs the health history
of the container, the current failed streak attempts, and log entries
for the last five attempts which themselves have start and stop times,
result, and a 500 character truncated (if needed) log of stderr/stdout.

The timings themselves are not implemented in this PR but will be in
future enablement (i.e. next).

Signed-off-by: baude <bbaude@redhat.com>
2019-03-12 14:29:18 -05:00
OpenShift Merge Robot 1c45b42e9f
Merge pull request #2585 from giuseppe/build-honor-net
build: honor --net
2019-03-12 12:19:47 -07:00
OpenShift Merge Robot e37b0670e2
Merge pull request #2612 from KKoukiou/api-doc-fix
Fix broken link in API.md
2019-03-11 18:05:06 -07:00
OpenShift Merge Robot 300b53cffe
Merge pull request #2527 from baude/events
Add event logging to libpod, even display to podman
2019-03-11 18:04:51 -07:00
OpenShift Merge Robot dcd253f2e4
Merge pull request #2609 from QiWang19/moveformats
move formats pkg to and vendor from buildah
2019-03-11 17:56:58 -07:00
baude ca1e76ff63 Add event logging to libpod, even display to podman
In lipod, we now log major events that occurr.  These events
can be displayed using the `podman events` command. Each
event contains:

* Type (container, image, volume, pod...)
* Status (create, rm, stop, kill, ....)
* Timestamp in RFC3339Nano format
* Name (if applicable)
* Image (if applicable)

The format of the event and the varlink endpoint are to not
be considered stable until cockpit has done its enablement.

Signed-off-by: baude <bbaude@redhat.com>
2019-03-11 15:08:59 -05:00
Katerina Koukiou cba0178d2d Fix broken link in io.podman.varlink
Link to InspectImage was broken.

Signed-off-by: Katerina Koukiou <kkoukiou@redhat.com>
2019-03-11 20:12:32 +01:00
Qi Wang e3d8e79d95 move formats pkg to and vendor from buildah
Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-03-11 14:44:59 -04:00
OpenShift Merge Robot 7038cac53c
Merge pull request #2578 from baude/movecreate
preparation for remote-client create container
2019-03-11 11:43:03 -07:00
OpenShift Merge Robot 6421208e0f
Merge pull request #2583 from giuseppe/rootless-fix-pod-rm
rootless: fix stop and rm when the container is running with uid != 0
2019-03-11 10:01:25 -07:00
baude 651520389d preparation for remote-client create container
to prepare for being able to remotely run a container, we need to
perform a refactor to get code out of main because it is not
reusable.  the shared location is a good starting spot though
eventually some will likely end up in pkg/spec/ at some point.

Signed-off-by: baude <bbaude@redhat.com>
2019-03-11 09:42:22 -05:00
Giuseppe Scrivano 231129e4dc
rootless: fix pod stop|rm if uid in the container != 0
join the user namespace where the pod is running, so that we can both
manage the storage and correctly send the kill signal to a process
which is not running as root in the namespace.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-11 11:48:28 +01:00
Giuseppe Scrivano 35432ecaae
rootless: fix rm when uid in the container != 0
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-11 11:48:27 +01:00
Giuseppe Scrivano d6ebccf7c2
rootless: disable pod stats
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-11 11:48:27 +01:00
Giuseppe Scrivano 4a0fb35335
rootless: do not create automatically a userns for pod kill
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-11 11:48:26 +01:00
Giuseppe Scrivano e02393ba70
libpod: allow to configure path to the network-cmd binary
allow to configure the path to the network-cmd binary, either via an
option flag --network-cmd-path or through the libpod.conf
configuration file.

This is currently used to customize the path to the slirp4netns
binary.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-11 09:29:04 +01:00
Giuseppe Scrivano 06e444124f
build: honor --net
when --net is specified, pass it down to Buildah.

Depends on: https://github.com/containers/buildah/pull/1395

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-11 09:28:57 +01:00
OpenShift Merge Robot be6ad02049
Merge pull request #2591 from baude/issue2209
podman play kube defaults
2019-03-08 11:24:44 -08:00
OpenShift Merge Robot b3d9540b16
Merge pull request #2589 from baude/issue2171
container runlabel respect $PWD
2019-03-08 11:12:25 -08:00
baude 754d486da5 podman play kube defaults
if an input YAML file lacks securitycontext and working dir for
a container, we need to be able to handle that.  if no default for
working dir is provided, we use a default of "/".

fixes issue #2209

Signed-off-by: baude <bbaude@redhat.com>
2019-03-08 12:36:25 -06:00
OpenShift Merge Robot 5ae7359184
Merge pull request #2557 from QiWang19/filter2241
fix bug in podman images list all images with same name
2019-03-08 09:23:36 -08:00
baude 24f567a3db container runlabel respect $PWD
When doing environment variable substitution, we need to make sure
$PWD is replaced with the current working directory.

fixes issue #2171

Signed-off-by: baude <bbaude@redhat.com>
2019-03-08 10:32:33 -06:00
OpenShift Merge Robot c4815e8a61
Merge pull request #2569 from giuseppe/rootless-fix-exec-with-user
rootless: exec join the user+mount namespace
2019-03-08 08:22:55 -08:00
OpenShift Merge Robot 90319bcf52
Merge pull request #2586 from mheon/fix_ps_states
Remove 'podman ps' restarting filter and fix stopped
2019-03-08 08:05:45 -08:00
OpenShift Merge Robot 8c54126b6f
Merge pull request #2582 from baude/issue2574
label parsing in non-quoted field
2019-03-08 07:11:18 -08:00
Matthew Heon fbd8f33a59 Remove 'podman ps' restarting filter and fix stopped
Podman has no concept of a "restarting" container - such a
container is just transitioning from running to stopped and
then back to running through our ordinary state machine.

As such, filtering "restarting" containers doesn't work and does
nothing.

Also, make "stopped" containers show as exited - this is a
momentary state we transition to before proper exited.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-03-08 09:55:39 -05:00
baude a7606ca5d9 label parsing in non-quoted field
switch from a stringslice to a stringarray for labels to handle quoted
input.

fixes issue #2574

Signed-off-by: baude <bbaude@redhat.com>
2019-03-08 08:17:31 -06:00
Daniel J Walsh 181f327d57
More cleanup for failures on missing commands.
Currently in podman if a user specifies a command that does not exist
the tool shows the help information.  This patch changes it to show
information like:

$ ./bin/podman foobar
Error: unrecognized command 'podman foobar'
Try 'podman --help' for more information.
$ ./bin/podman volume foobar
Error: unrecognized command `podman volume foobar`
Try 'podman volume --help' for more information.
$ ./bin/podman container foobar
Error: unrecognized command `podman container foobar`
Try 'podman container --help' for more information.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-08 07:06:50 -05:00
Qi Wang 15971689e8 fix bug in podman images list all images with same name
Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-03-07 13:55:31 -05:00
Daniel J Walsh 9a39c60e46
Fix help commands to show short and long description.
Cleanup lots of help information to look good when displayed.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-07 13:46:59 -05:00
Giuseppe Scrivano 081291c8d6
create: join also the mount ns of the dependency
when we are creating a container that depends on another one, be sure
we also join its mount namespace in addition to the user namespace.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-07 15:51:50 +01:00
Giuseppe Scrivano 4a02713c57
rootless: exec join the user+mount namespace
it is not enough to join the user namespace where the container is
running.  We also need to join the mount namespace so that we can
correctly look-up inside of the container rootfs.  This is necessary
to lookup the mounted /etc/passwd file when --user is specified.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-07 15:34:30 +01:00
OpenShift Merge Robot bf21ec8520
Merge pull request #2565 from edsantiago/healthcheck_run_usage_fix
Yet another seemingly minor tweak to usage message
2019-03-07 06:30:51 -08:00
Ed Santiago e48d4197c1 Yet another seemingly minor tweak to usage message
Add explicit [flags] to podman healthcheck run Use message.

Reason: Cobra checks for the string '[flags]' in the Use text.
If absent, and command has options, Cobra appends it. This
is misleading to humans, because the --help output looks like:

     podman healthcheck run CONTAINER [flags]

...when of course that won't work.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-06 16:36:18 -07:00
OpenShift Merge Robot 614409f644
Merge pull request #2534 from jwhonce/wip/remote_wait
Implement podman-remote wait command and container subcommand
2019-03-06 13:07:52 -08:00
OpenShift Merge Robot 02e2342d20
Merge pull request #2442 from baude/remotepodtop
podman-remote pod top|stats
2019-03-06 12:24:13 -08:00
OpenShift Merge Robot ef714756b7
Merge pull request #2532 from QiWang19/i2520
add flag --extract tar file in podman cp
2019-03-06 09:40:39 -08:00
Jhon Honce 8a6758d5fd Implement podman-remote wait command and container subcommand
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2019-03-06 10:32:01 -07:00
OpenShift Merge Robot c6c0b54c36
Merge pull request #2491 from baude/healtcheckphase1
podman healthcheck run (phase 1)
2019-03-06 09:24:22 -08:00
baude 788f818cc5 podman-remote pod top|stats
this is the final enablement for the pod subcommand.  it includes the
ability to run podman-remote pod top and stats.

Signed-off-by: baude <bbaude@redhat.com>
2019-03-06 11:01:25 -06:00
OpenShift Merge Robot 2b5a962832
Merge pull request #2547 from haircommander/pod_volume_mount
Add volume mounting to podman play kube
2019-03-06 08:35:51 -08:00
Qi Wang d9e1b2c470 add flag --extract tar file in podman cp
Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-03-06 10:06:25 -05:00
OpenShift Merge Robot 2dc8568368
Merge pull request #2430 from QiWang19/issfiltet
Support filter image by reference to the image name
2019-03-06 04:47:33 -08:00
Peter Hunt 7128b61987 Add volume mounting to podman play kube
Before, podman play kube ignored HostPath and VolumeMounts fields in a k8s yaml file. Add this functionality, allowing for a user to create a volume mount from a .yaml file

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-03-05 16:31:19 -05:00
baude 598bde52d0 podman healthcheck run (phase 1)
Add the ability to manually run a container's healthcheck command.
This is only the first phase of implementing the healthcheck.
Subsequent pull requests will deal with the exposing the results and
history of healthchecks as well as the scheduling.

Signed-off-by: baude <bbaude@redhat.com>
2019-03-05 14:03:55 -06:00
OpenShift Merge Robot 3d441b5d96
Merge pull request #2519 from jwhonce/wip/remote_kill
Support podman-remote kill container(s)
2019-03-05 08:52:09 -08:00
OpenShift Merge Robot b62540c6d5
Merge pull request #2540 from giuseppe/rm-error-1-if-no-ctr
rm: set exit code to 1 if a specified container is not found
2019-03-05 06:21:45 -08:00
OpenShift Merge Robot 85b116707b
Merge pull request #2426 from giuseppe/exec-preserve-fds
exec: support --preserve-fds
2019-03-05 05:56:46 -08:00
Giuseppe Scrivano 85db895012
rm: set exit code to 1 if a specified container is not found
Closes: https://github.com/containers/libpod/issues/2539

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-05 13:41:17 +01:00
Qi Wang a8d6d7dce7 Support filter image by reference to the repo name
Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-03-04 20:39:47 -05:00
Jhon Honce 8eb4940081 Support podman-remote kill container(s)
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2019-03-04 16:37:22 -07:00
OpenShift Merge Robot 54eecb02f0
Merge pull request #2511 from rhatdan/test
Add missing short flag -l for run/create
2019-03-04 08:08:58 -08:00
OpenShift Merge Robot 8a90f83d18
Merge pull request #2517 from QiWang19/i2509
Don't extract tar file in podman cp
2019-03-04 07:39:03 -08:00
Qi Wang c8bf73883c Don't extract tar file in podman cp
Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-03-04 09:48:17 -05:00
OpenShift Merge Robot 9171702379
Merge pull request #2512 from edsantiago/yet_more_usage_fixes
A few more usage-message tweaks
2019-03-04 06:18:54 -08:00
OpenShift Merge Robot d63c8b0032
Merge pull request #2364 from jwhonce/wip/remote_stop
Support podman-remote stop container
2019-03-04 03:58:47 -08:00
Ed Santiago 0a0c1fa23e A few more usage-message tweaks
Minor stuff, but it corrects some errors in usage messages.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-03 19:09:12 -07:00
Daniel J Walsh e3358585b3
Add missing short flag -l for run/create
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-03 20:38:43 -05:00
Daniel J Walsh d231cfba92
Fix aliased commands to actually work
The current aliased commands

podman container list

and

podman image list
podman image rm

Do not work properly.  The global storage options are broken.

This patch fixes this issue.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-03-03 06:14:20 -05:00
Jhon Honce 4d13a80fa4 Support podman-remote stop container(s)
* Clean up adapter code
* Add GetContainersByContext to Varlink API
* Add missing comments
* Restore save command
* Restore error type mapping when using varlink

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2019-03-02 08:57:20 -07:00
Giuseppe Scrivano 0b34327ad4
exec: support --preserve-fds
Allow to pass additional FDs to the process being executed.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-03-02 11:45:42 +01:00
OpenShift Merge Robot 8ee471f800
Merge pull request #2495 from baude/runlabelpulldefault
Pull image for runlabel if not local
2019-03-01 12:50:50 -08:00
OpenShift Merge Robot 467b677451
Merge pull request #2482 from edsantiago/podman_image_rm
Fix usage messages for podman image list, rm
2019-03-01 12:35:59 -08:00
OpenShift Merge Robot e4746f9b4b
Merge pull request #2452 from edsantiago/no_more_args
Command-line input validation: reject unused args
2019-03-01 12:22:12 -08:00
OpenShift Merge Robot ce8d7b8539
Merge pull request #2451 from baude/playrenamepodoncollision
rename pod when we have a name collision with a container
2019-03-01 12:22:07 -08:00
Ed Santiago 0bf06b9e3b
Merge pull request #2486 from edsantiago/podman_command_compare
podman-commands script: refactor
2019-03-01 09:54:45 -07:00
Ed Santiago 6060113967
Merge pull request #2493 from edsantiago/broken_doc_links
Fix link inconsistencies in man pages
2019-03-01 09:50:00 -07:00
baude a4b82c03d3 Pull image for runlabel if not local
In cases where a user issues the podman container runlabel
command and the image is not local, we now default to pulling
the image automatically to mimic the atomic cli behavior.

Fixes: BZ #1677905

Signed-off-by: baude <bbaude@redhat.com>
2019-03-01 09:20:12 -06:00
Ed Santiago 6f474c5704 Fix link inconsistencies in man pages
Found via:

    for i in docs/*.md;do x=$(perl -ne 'if (/\[(podman-.*?)\(1\)\]\((podman-.*?)\.1\.md/) { print "  $1 != $2\n" if $1 ne $2; print " ENOENT $2\n" unless -e "docs/$2.1.md" }' <$i); if [ -n "$x" ]; then echo $i; echo "$x";fi;done

...which is probably a good candidate for another CI hook,
except I have no idea how to rewrite it in awk.

Additionally, mark `podman refresh` and `podman container refresh`
as hidden, remove its man page, and remove references to it from
all other man pages.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-03-01 06:53:52 -07:00
Daniel J Walsh f539500884
Should be defaulting to pull not pull-always
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-02-28 17:20:29 -05:00
OpenShift Merge Robot a680144f71
Merge pull request #2487 from haircommander/exec_attahc
Allow Exec API user to override streams
2019-02-28 13:18:05 -08:00
Ed Santiago 742028e255 podman-commands script: refactor
Make more general-purpose: instead of hardcoding a list
of known subcommands, and duplicating sed pipelines for
each, rely on 'podman help' itself to tell us which
podman commands have subcommands; and examine each
in turn. Should there ever be new subcommands, this
will identify and test them.

A special case is needed for 'podman image trust', whose
documentation format doesn't match the others.

The change to `common.go` fixes an inconsistency: the
Usage message for commands with subcommands had an
unnecessary blank line, making it harder to parse
automatically. This simply produces consistent
Usage messages for all podman commands.

This script will not pass until #2480 is merged.
After that, the goal is to add this as a CI hook.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-28 13:16:24 -07:00
Ed Santiago 4258e38326 Fix usage messages for podman image list, rm
pr #2480 fixed the missing 'podman image list/rm' commands;
it broke their usage messages. This corrects both usage
messages and also their examples.

Also: add an e2e test for 'podman image rm' (untested)

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-28 13:11:14 -07:00
Peter Hunt d780e69559 Allow Exec API user to override streams
Allow passing in of AttachStreams to libpod.Exec() for usage in podman healthcheck. An API caller can now specify different streams for stdout, stderr and stdin, or no streams at all.

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2019-02-28 14:55:11 -05:00
OpenShift Merge Robot 4a109a7199
Merge pull request #2480 from baude/clifixups
fix up a number of misplace commands
2019-02-28 10:41:01 -08:00
OpenShift Merge Robot 2e463b7720
Merge pull request #2478 from baude/portbz1683734
podman port fix output
2019-02-28 10:03:13 -08:00
baude 3fa1fdf711 fix up a number of misplace commands
* ps now on main command
* sign is no longer on main commmand
* ls, list no longer are valid main aliases for images
* ls, list does work for podman image

Signed-off-by: baude <bbaude@redhat.com>
2019-02-28 09:36:23 -06:00
OpenShift Merge Robot bbf54aaab7
Merge pull request #2476 from mheon/fix_stop
Fix ignored --stop-timeout flag to 'podman create'
2019-02-28 03:54:53 +01:00
baude 3eb1d3c08a podman port fix output
list a portion of the container id and the ports exposed on the same
line. when using all, if no ports are exposed, do not list the container
id.  Also, shorten the container id to a len of 12 like other container
commands.

Fixes bugzilla #1683734
Signed-off-by: baude <bbaude@redhat.com>
2019-02-27 20:31:01 -06:00
OpenShift Merge Robot cd060d0b54
Merge pull request #2475 from edsantiago/podman_create_interspersed
podman create: disable interspersed opts
2019-02-27 23:29:23 +01:00
Matthew Heon 37f447d78e Fix ignored --time argument to podman restart
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-27 17:22:34 -05:00
Matthew Heon 3ba2af90ae Fix four errors tagged by Cobra macro debugging
Three flags are unimplemented (never implemented)

One had an incorrect retrieval macro

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-27 16:38:31 -05:00
Matthew Heon ad6988be32 Add debugging for errors to Cobra compatibility macros
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-27 16:26:12 -05:00
Ed Santiago 9934507d74 Command-line input validation: reject unused args
Several podman commands accept no subcommands. Some
of those were not actually checking, though, which
could lead to user confusion. Added validation where
missing; and, refactored to minimize duplication.

(Side note: I decided against using cobra.NoArgs
because its error message, "unknown command",
misleadingly implies that there are known ones).

Also added validation to varlink

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-27 14:20:29 -07:00
Matthew Heon 512245afcb Fix ignored --stop-timeout flag to 'podman create'
Also add some extra debug information to help figure out what's
going on when stop goes bad.

Fixes: #2472

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-27 16:20:11 -05:00
Ed Santiago 2c0909bccc fixup! Incorporate review feedback
Per tsweeney, add back the original examples

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-27 14:19:02 -07:00
Ed Santiago 7a66ad7fee fixup! missed some more:
- [flags] in generate-kube
- optional [IMAGE] in images

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-27 14:19:02 -07:00
Ed Santiago 69808ff320 fixup! Correction to 'checkpoint'
...it's a subcommand of 'podman container'

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-27 14:18:15 -07:00
Ed Santiago 9a3a59c3a5 Followup to #2456: update examples, add trust
- belatedly incorporate review feedback from baude
- add usage synopsis for trust-set and trust-show

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-27 14:18:15 -07:00
OpenShift Merge Robot 4e553cfd46
Merge pull request #2471 from baude/clifixups
fix up a number of misplace commands
2019-02-27 22:15:31 +01:00
Ed Santiago 5c08ff58d7 podman create: disable interspersed opts
With the change to cobra, the following command fails:

   # podman create alpine sh -c /bin/true
   Error: unknown shorthand flag: 'c' in -c

(Correct behavior is to pass '-c' to the container command)

This PR corrects that.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-27 14:08:58 -07:00
baude 4a33ee2ab3 fix up a number of misplace commands
* ps now on main command
* sign is no longer on main commmand
* ls, list no longer are valid main aliases for images
* ls, list does work for podman image

Signed-off-by: baude <bbaude@redhat.com>
2019-02-27 12:29:41 -06:00
Matthew Heon ffefbda694 Fix build for non-Varlink-tagged Podman
Fixes #2459

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-27 10:27:08 -05:00
OpenShift Merge Robot 70d3cc2e73
Merge pull request #2454 from mheon/all_your_defaults_belong_to_libpod
Move all storage configuration defaults into libpod
2019-02-27 14:25:16 +01:00
OpenShift Merge Robot f7f266e361
Merge pull request #2456 from edsantiago/better_synopses
Better usage synopses for subcommands
2019-02-27 13:49:29 +01:00
OpenShift Merge Robot 87f0b36787
Merge pull request #2460 from adrianreber/restore
Remove restore as podman subcommand
2019-02-27 13:36:08 +01:00
Adrian Reber 17135cb00b
Remove restore as podman subcommand
The commands checkpoint and restore should only be available under
'podman container'. This is probably a result of the recent cobra
migration.

Signed-off-by: Adrian Reber <areber@redhat.com>
2019-02-27 07:46:29 +01:00
Ed Santiago a20ff42134 Better usage synopses for subcommands
Conceptually simple: include, where applicable, a brief
description of command-line options for each subcommand.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-26 18:10:36 -07:00
Matthew Heon b8e6ef618b Move all storage configuration defaults into libpod
Instead of passing in defaults via WithStorageConfig after
computing them in cmd/podman/libpodruntime, do all defaults in
libpod itself.

This can alleviate ordering issues which caused settings in the
libpod config (most notably, volume path) to be ignored.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-26 15:32:53 -05:00
OpenShift Merge Robot 6352f19d88
Merge pull request #2446 from mheon/add_image_volume
Only remove image volumes when removing containers
2019-02-26 19:20:08 +01:00
baude ed1ea8dea1 rename pod when we have a name collision with a container
when podman generate kube runs, it names the pod based on the first
container it finds. the resulting yaml file is perfectly acceptable
in a kubernetes environment.  But when replaying the YAML file
with podman, we cannot have a container and pod with the same name.
therefore, we rename the pod if find a collision to name_pod.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-26 12:13:12 -06:00
OpenShift Merge Robot 1ad0d29fc2
Merge pull request #2443 from baude/playstartrecursive
start pod containers recursively
2019-02-26 18:46:36 +01:00
Matthew Heon 83db80ce17 Only remove image volumes when removing containers
When removing volumes with rm --volumes we want to only remove
volumes that were created with the container. Volumes created
separately via 'podman volume create' should not be removed.

Also ensure that --rm implies volumes will be removed.

Fixes #2441

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-26 12:16:58 -05:00
Adrian Reber f5b72b8c44
Fix podman logs -l
'podman logs -l' was no longer working. This fixes it by replacing
&waitCommand.Latest with &logsCommand.Latest.

Signed-off-by: Adrian Reber <areber@redhat.com>
2019-02-26 17:33:17 +01:00
baude c79c641da1 start pod containers recursively
when using the play kube command, we need to make sure that containers
with dependancies are started in proper order.  in this case, the infra
container must be started first.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-26 10:19:08 -06:00
Matthew Heon da70c9db6f When location of c/storage root changes, set VolumePath
We want named volumes to be created in a subdirectory of the
c/storage graph root, the same as the libpod root directory is
now. As such, we need to adjust its location when the graph root
changes location.

Also, make a change to how we set the default. There's no need to
explicitly set it every time we initialize via an option - that
might conflict with WithStorageConfig setting it based on graph
root changes. Instead, just initialize it in the default config
like our other settings.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-26 09:37:00 -05:00
baude 0416b3afc4 podman-remote pod pause|unpause|restart
enable the ability for the remote client to pause, unpause, and
restart pods.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-25 16:14:06 -06:00
OpenShift Merge Robot cf521449e5
Merge pull request #2422 from baude/remotepodcreate
podman-remote create|ps
2019-02-25 21:57:42 +01:00
Daniel J Walsh fe4c0c3780
Change exit code to 1 on podman rmi nosuch image
Make it easy for scripts to determine if an image removal
failure.   If only errors were no such image exit with 1
versus 125.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-02-25 12:49:27 -05:00
OpenShift Merge Robot 73cfb9f127
Merge pull request #2423 from rhatdan/rm
Change exit code to 1 on podman rm nosuch container
2019-02-25 18:16:50 +01:00
Daniel J Walsh e41279b902
Change exit code to 1 on podman rm nosuch container
Make it easy for scripts to determine if a container removal
fails versus the container did not exist.

If only errors were no such container exit with 1 versus 125.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-02-25 10:31:04 -05:00
baude 43a1686598 podman-remote create|ps
enable the podman-remote client to be able to create and list
pods on a remote system.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-25 09:10:09 -06:00
baude 06cbf60d41 remove duplicate commands in main
kube was erronously being added as main subcommand multiple
times. it should not be a subcommand as it should live under
either play or generate.

also removing the addition of the volume command from the commands.go
to eliminate a duplicate.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-25 08:54:11 -06:00
OpenShift Merge Robot 553ac800c8
Merge pull request #2419 from rhatdan/play
Fix play to show up in podman help
2019-02-24 21:33:15 +01:00
OpenShift Merge Robot 53b147d215
Merge pull request #2416 from rhatdan/network
Allow dns settings with --net=host
2019-02-24 21:33:05 +01:00
OpenShift Merge Robot cc4adddeb7
Merge pull request #2413 from baude/remotepodstop
Enable more podman-remote pod commands
2019-02-24 03:13:25 +01:00
OpenShift Merge Robot 8e4be923b8
Merge pull request #2400 from rhatdan/pull
Switch defaults for podman build versus buildah
2019-02-23 23:01:07 +01:00
Daniel J Walsh 3642ce837f
Fix play to show up in podman help
Also change generate cli calls to match other commands.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-02-23 16:16:41 -05:00
OpenShift Merge Robot 3825db5aee
Merge pull request #2404 from baude/remoteerrors
make remote-client error messaging more robust
2019-02-23 22:10:03 +01:00
Daniel J Walsh bcc6b773e6
Switch defaults for podman build versus buildah
Switch defaults for --layers, --force-rm and --pull-always
from buildah to podman.

Only override default values.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-02-23 15:57:24 -05:00
Daniel J Walsh ba62683cbf
Allow dns settings with --net=host
This seems to be a needless restriction.  We make a copy of the
hosts /etc/resolv.conf file, so these changes to not modify the
host.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-02-23 07:19:30 -05:00
baude 4bf973a9f6 Enable more podman-remote pod commands
enable pod start, stop, and kill subcommands for the remote-client.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-22 17:00:24 -06:00
OpenShift Merge Robot b223d4e136
Merge pull request #2401 from TomSweeneyRedHat/dev/tsweeney/buildah1.7
Vendor Buildah v1.7
2019-02-22 23:56:06 +01:00
OpenShift Merge Robot c00bf28f24
Merge pull request #2406 from rhatdan/errors
Exit with errors not just logging error
2019-02-22 23:30:13 +01:00
OpenShift Merge Robot e6cc5706cd
Merge pull request #2410 from giuseppe/cp-rootless-support
cmd: support rootless mode for cp command
2019-02-22 22:52:39 +01:00
TomSweeneyRedHat ff0b4652ef Vendor Buildah v1.7
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>

Vendors in Buildah 1.7 into Podman.
Also the latest imagebuilder and changes for
`build --target`

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2019-02-22 16:40:05 -05:00
Daniel J Walsh 3775c6dc63
Exit with errors not just logging error
Several commands were logging errors but exiting with a 0
exit code.  This patch cleans these up.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-02-22 16:28:42 -05:00
OpenShift Merge Robot 84b3f2a7f6
Merge pull request #2386 from baude/cobravalidation
Improve command line validation
2019-02-22 22:10:07 +01:00
Giuseppe Scrivano d47a9a6c4d
cmd: support rootless mode for cp command
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-02-22 21:36:46 +01:00
baude 6ab6e2c307 hide --latest on the remote-client
in the case of the remote-client, it was decided to hide the latest
flag to avoid confusion for end-users on what the "last" container,
volume, or pod are.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-22 14:13:08 -06:00
baude 328250e7be Improve command line validation
Use the checkallandlatest function to validate flag usage as part
of the cobra command args validation.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-22 14:13:08 -06:00
OpenShift Merge Robot c757cb23ca
Merge pull request #2402 from baude/remotepodinspect
podman-remote pod inspect|exists
2019-02-22 21:12:49 +01:00
baude 6208d53464 make remote-client error messaging more robust
the remote-client is currently weak for carrying error messages
over the varlink interface and displaying something useful to users
and developers for the purposes of debug.  this is a starting point
to improve that user experience.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-22 14:12:36 -06:00
baude bc6b4aa39c podman-remote pod inspect|exists
enable the remote client to be able to inspect a pod.  also, bonus of
enabling the podman pod exists command which returns a 0 or 1 depending
on whether the given pod exists.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-22 11:08:04 -06:00
OpenShift Merge Robot 1788addd04
Merge pull request #2389 from baude/issue2388
add newline to images output
2019-02-22 00:03:40 +01:00
OpenShift Merge Robot eb6243226a
Merge pull request #2350 from mheon/lock_renumber
Add lock renumbering
2019-02-21 23:11:24 +01:00
Ed Santiago bd354ad3cc update: remove duplicate newline
Signed-off-by: Ed Santiago <santiago@redhat.com>
2019-02-21 13:49:42 -07:00
Matthew Heon 19eb72f420 Fix typo in comment
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-21 14:19:50 -05:00
baude 71db80ddb1 podman-remote load image
enable the ability to load an image into remote storage
using the remote client.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-21 10:11:19 -06:00
Matthew Heon d2b77f8b33 Do not make renumber shut down the runtime
The original intent behind the requirement was to ensure that, if
two SHM lock structs were open at the same time, we should not
make such a runtime available to the user, and should clean it up
instead.

It turns out that we don't even need to open a second SHM lock
struct - if we get an error mapping the first one due to a lock
count mismatch, we can just delete it, and it cleans itself up
when it errors. So there's no reason not to return a valid
runtime.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-21 10:51:42 -05:00
Matthew Heon e0a6873d78 Add podman system renumber command
This command allows for renumbering Podman locks after an upgrade
to Podman with SHM locks from a 1.0 or earlier branch, or after
the number of locks was changed.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-21 10:51:42 -05:00
Matthew Heon 43db7734e8 Add ability to get a runtime that renumbers
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-21 10:51:42 -05:00
baude e91ec38a70 enable podman-remote pod rm
add the ability to delete a pod from the remote client.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-21 08:40:42 -06:00
baude ad3ccd69f9 add newline to images output
ensure a final newline is always added to images output.

fixes #2388

Signed-off-by: baude <bbaude@redhat.com>
2019-02-20 16:44:23 -06:00
baude 711ac93051 podman-remote save [image]
Add the ability to save an image from the remote-host to the
remote-client.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-20 12:58:05 -06:00
OpenShift Merge Robot a68c964bf3
Merge pull request #2377 from vrothberg/kill-squared
remove duplicate kill from `podman --help`
2019-02-20 19:24:45 +01:00
OpenShift Merge Robot 148d46766f
Merge pull request #2360 from vrothberg/parallel-search
podman-search: run in parallel
2019-02-20 18:44:40 +01:00
OpenShift Merge Robot 11a1c23ab3
Merge pull request #2374 from mheon/rootless_recursive_start
Ensure that userns is created for stopped rootless pods
2019-02-20 14:58:13 +01:00
Valentin Rothberg db0a2bcb5a remove duplicate kill from `podman --help`
Remove the duplicate kill command and only keep it in the
`mainCommands` containing commands that are implemented by
the native client and the remote one.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-02-20 12:49:31 +01:00
Valentin Rothberg 6ae4401bd1 iopodman.SearchImages: add ImageSearchFilter to Varlink API
Also add some argument checks to the Varlink function to avoid
referencing nil pointers, and complement the API.md descriptions.

The varlink endpoint can be tested via varlink CLI:

$ varlink call -m unix:/run/podman/io.podman/io.podman.SearchImages \
      '{"query": "ruby", "limit": 0, "tlsVerify": false, "filter": {}}'

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-02-20 10:25:25 +01:00
Valentin Rothberg 8a49b59ed4 image.SearchImages: use SearchFilter type
Use an `image.SearchFilter` instead of a `[]string` in the SearchImages
API.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-02-20 10:25:25 +01:00
Valentin Rothberg 0d3eaca28a SearchImages: extend API with filter parameter
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-02-20 10:25:25 +01:00
Valentin Rothberg 87c9f4cc22 podman-search: refactor code to libpod/image/search.go
Refactor the image-search logic from cmd/podman/search.go to
libpod/image/search.go and update podman-search and the Varlink API to
use it.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-02-20 10:25:25 +01:00
Valentin Rothberg b5c0d15683 podman-search: run in parallel
Spin up a goroutine for each registry to make podman-search run in
parallel.  This has considerable speed improvements.  For instance, a
`podman search ruby` drops from 11 to 2 seconds when using the following
search registries:

```toml
[registries.search]
registries = ['docker.io', 'registry.fedoraproject.org', 'quay.io',
              'registry.access.redhat.com', 'registry.centos.org']
```

The number of parallel goroutines is limited to 6 to play nice with
local resources and the registries.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-02-20 10:25:25 +01:00
Matthew Heon 5642472c49 Ensure that userns is created for stopped rootless pods
Signed-off-by: Matthew Heon <mheon@redhat.com>
2019-02-19 17:16:43 -05:00
Matthew Heon 91ae38092b Podman pod create now errors on receiving CLI args
It has never accepted arguments, so we should error when passed
args we will never use.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-02-19 15:03:56 -05:00
OpenShift Merge Robot 82ae36c157
Merge pull request #2363 from TomSweeneyRedHat/dev/tsweeney/cobraex5
Fifth chunk of Cobra Examples
2019-02-19 19:48:05 +01:00
baude 8f40c4e6b4 podman-remote pull
Add status for remote users and podman remote-client pull.

Signed-off-by: baude <bbaude@redhat.com>
2019-02-19 10:13:07 -06:00
TomSweeneyRedHat 675a202a1b Fifth chunk of Cobra Examples
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>

The fifth and final chunk of examples for the Cobra
examples in the CLI help output.

Also includes a few man page touchups.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2019-02-18 19:37:09 -05:00
OpenShift Merge Robot 228d1cbcd3
Merge pull request #2361 from TomSweeneyRedHat/dev/tsweeney/cobraex4
Add 4th chunk of Cobra Examples
2019-02-18 22:14:57 +01:00
TomSweeneyRedHat 64853710e8 Add 4th chunk of Cobra Examples
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>

Adds the 4th chunk of Cobra Examples to the CLI help.
One more chunk of 10 to complete.

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2019-02-18 15:18:42 -05:00
Sebastian Jug 7141f97270 OpenTracing support added to start, stop, run, create, pull, and ps
Drop context.Context field from cli.Context

Signed-off-by: Sebastian Jug <sejug@redhat.com>
2019-02-18 09:57:08 -05:00
OpenShift Merge Robot e738ef1622
Merge pull request #2354 from rhatdan/varlink
Add registry name to fields returned by varlink image search
2019-02-18 13:32:54 +01:00
OpenShift Merge Robot 3f32eae56f
Merge pull request #2357 from TomSweeneyRedHat/dev/tsweeney/cobrahelp3
Add 3rd chunk of Cobra examples
2019-02-17 22:44:04 +01:00
OpenShift Merge Robot 6aaf8d39a9
Merge pull request #2295 from haircommander/recursive-start
Recursively start a pod if a container is run in it
2019-02-17 21:04:33 +01:00