1156 Commits

Author SHA1 Message Date
183cde0c68 Merge pull request #1020 from giuseppe/resize-fix-loop
utils: fix endless write of resize event
2018-06-28 17:43:58 -04:00
67f68626e6 vendor in latest golang/x/sys
Signed-off-by: baude <bbaude@redhat.com>

Closes: #1022
Approved by: baude
2018-06-28 20:28:38 +00:00
45c745e0b0 vendor in latest docker package
Signed-off-by: baude <bbaude@redhat.com>

Closes: #1022
Approved by: baude
2018-06-28 20:28:38 +00:00
3b9046a170 Remove the --registry flag from podman search
Instead of setting the --registry flag to search a single registry,
prefix the registry before the image name in the input, an example is
`podman search registry.fedoraproject.org/fedora` and this will search for
the fedora image in only registry.fedoraproject.org.

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

Closes: #1011
Approved by: rhatdan
2018-06-28 16:55:29 +00:00
54e9a48c54 utils: fix endless write of resize event
issue introduced with c82166afabd63f6271990be89ffa6609d3dc6712

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-06-28 18:53:09 +02:00
650797c016 Start prints UUID or container name that user inputs on success
Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1019
Approved by: rhatdan
2018-06-28 16:13:42 +00:00
c82166afab cmd/podman/utils.go: Cancel-able resize writes
On Thu, Jun 28, 2018 at 03:48:26AM -0700, Marco Vedovati wrote [1]:
> The root cause is a deadlock between two channel writes made by two
> different goroutines:
>
> 1. `resizeTty() : go func(){} : sendUpdate()` is sending a resize
>    message thru `resize` right at the beginning, but the channel is
>    never read if some startup error occurs.
>
> 2. Upon program termination, `startAttachCtr() : defer func(){} ` is
>    telling the goroutine in "1." to stop via the `resizeTerminate`
>    channel. But that guy is still waiting for the write to `resize`
>    to complete so the the termination message is never read.
>
> I think the go deadlock detection does not kick in because not all
> goroutines are seen as asleep. E.g. `os/signal Notify()` is enough
> to have the deadlock not detected.

333ab8c2 (Fix podman hangs when detecting startup error in container
attached mode, 2018-06-27, #1010) addressed this with a deferred
drain.  This commit adjusts that approach to use a single select to
cover "have we been canceled?", "has there been a resize signal?", and
(when we have one) "can we write the most recent resize event to the
resize channel?".

A side benefit to this approach is that if we have a slow resize
consumer and several resize signals, the resizeTty function will keep
updating its local resizeEvent.  Once the resize channel is able to
accept, only the most-recent event will be written.  Previously we'd
have written one resize event for every received signal, even if the
resize consumer was falling behind.

[1]: https://github.com/projectatomic/libpod/pull/1010#issuecomment-400994436

Signed-off-by: W. Trevor King <wking@tremily.us>

Closes: #1018
Approved by: rhatdan
2018-06-28 15:53:02 +00:00
333ab8c211 Fix podman hangs when detecting startup error in container attached mode
Signed-off-by: Marco Vedovati <mvedovati@suse.com>

The initial resize command sent to the terminal window over the resize
channel may never be delivered in case of error.

Hence it is necessary to consume all data from the resize channel to
avoid a deadlock on startup.

Fixes: #1009

Closes: #1010
Approved by: giuseppe
2018-06-28 13:39:52 +00:00
b5cd076164 travis: bump go to 1.9.x and 1.10.x
Update the used go versions from 1.8.x to 1.9.x and 1.9.x to 1.10.x.

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

Closes: #1016
Approved by: rhatdan
2018-06-28 13:08:11 +00:00
04accf0eff podman-build --help: update description
Update the description of podman-build which was mentioning the initial
requirement of Buildah which doesn't apply anymore since Podman is
vendoring Buildah code.

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

Closes: #1005
Approved by: rhatdan
2018-06-28 13:07:31 +00:00
fd12c8918b *: Replace Generator.Spec() with Generator.Config
Catching up with opencontainers/runtime-tools@84a62c6a (generate: Move
Generator.spec to Generator.Config, 2016-11-06, #266, v0.6.0), now
that we've bumped runtime-tools in f6c0fc1a (Vendor in latest
runtime-tools, 2018-06-26, #1007).

Signed-off-by: W. Trevor King <wking@tremily.us>

Closes: #1008
Approved by: mheon
2018-06-27 21:27:19 +00:00
c32c491869 generator.New() requires an OS string input variable
Signed-off-by: baude <bbaude@redhat.com>

Closes: #1007
Approved by: baude
2018-06-27 15:16:02 +00:00
e1b47c1507 Vendor in latest buildah
Signed-off-by: baude <bbaude@redhat.com>

Closes: #1007
Approved by: baude
2018-06-27 15:16:02 +00:00
f6c0fc1aa8 Vendor in latest runtime-tools
Newer runtime tools separates syscalls by OS so we can build darwin.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #1007
Approved by: baude
2018-06-27 15:16:02 +00:00
19f5a504ff docs: add documentation for rootless containers
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #936
Approved by: rhatdan
2018-06-27 14:07:17 +00:00
6f3208b599 runtime: change rootless data storage default path
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #936
Approved by: rhatdan
2018-06-27 14:07:17 +00:00
3306d3e120 rootless: use $HOME/.config/containers/libpod.conf
If the file exists, use it to read the configuration.

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

Closes: #936
Approved by: rhatdan
2018-06-27 14:07:17 +00:00
ea06dccba2 test: add env variables to the debug output
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #936
Approved by: rhatdan
2018-06-27 14:07:17 +00:00
20862c9746 rootless: do not configure additional groups
Additional groups are not allowed in an userNS.

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

Closes: #936
Approved by: rhatdan
2018-06-27 14:07:17 +00:00
4415bad6fe oci: set XDG_RUNTIME_DIR to the runtime from GetRootlessRuntimeDir()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #936
Approved by: rhatdan
2018-06-27 14:07:17 +00:00
5ff90677c8 rootless: add management for the userNS
When running podman as non root user always create an userNS and let
the OCI runtime use it.

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

Closes: #936
Approved by: rhatdan
2018-06-27 14:07:17 +00:00
8ee8f84734 container_internal: don't ignore error from cleanupNetwork()
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1002
Approved by: rhatdan
2018-06-27 13:43:33 +00:00
80131339b7 Mark containers invalid earlier during removal
Fixes a bug where we might try saving back to the database during
cleanup, which would fail as the container was already removed
from the database.

Signed-off-by: Matthew Heon <mheon@redhat.com>

Closes: #1001
Approved by: rhatdan
2018-06-27 13:42:20 +00:00
c75f4d4e70 Add --authfile to podman search
Since podman search requires credentials to search private registries,
add the --authfile flag to allow users to pass in credentials from a
different authfile than the default one.

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

Closes: #998
Approved by: rhatdan
2018-06-27 09:46:50 +00:00
143ea6e66e Vendor in latest containers/image
Fixes issue with podman search of private registries. Podman search
was not picking up the credentials from the authfile. This fixes it.

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

Closes: #998
Approved by: rhatdan
2018-06-27 09:46:50 +00:00
330bbe29bb Merge pull request #1003 from rhatdan/vendor
Vendor in go-selinux again
2018-06-27 05:29:18 -04:00
60427ab3d2 add podman remote client
podman client that is capable of:
 * images
 * ps
 * rm
 * rmi

this is only a mockup to frame out and prove python library and ssh
tunnelling usage.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #986
Approved by: rhatdan
2018-06-27 04:52:22 +00:00
3a471c7161 Vendor in go-selinux again
Baude found an error in non linux bindings.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-06-26 14:21:41 -04:00
56133f7263 Update the vendoring of github.com/opencontainers/selinux
THis should make libpod easier to build on non linux platforms.

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

Closes: #1000
Approved by: mheon
2018-06-26 16:21:54 +00:00
b23371cb1d Containers can dissappear
Between the time that ps command gets the list of containers
and is able to ask for more data, the container could have
exited.  This patch logs Clibpod.ErrNoSuchCtr errors and just continues
processing.

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

Closes: #996
Approved by: mheon
2018-06-26 09:46:29 +00:00
208b9a6b6b Add podman-image and podman-container man page links
podman image and podman container have alternate CLI
to standard CLI for a lot of commands.  The man pages
can be shared between both.  This patch adds links so that
of some executes

`podman image load`, they will actually see the `podman load` man page.

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

Closes: #993
Approved by: mheon
2018-06-25 21:38:46 +00:00
b62b1cae42 Update ocicni vendor to pick up bugfixes
Signed-off-by: Matthew Heon <mheon@redhat.com>

Closes: #991
Approved by: rhatdan
2018-06-25 16:51:11 +00:00
e89bbd6068 make varlink optional for podman
some platforms and operating systems do not have varlink.  in those cases,
we need to be able to turn off enablement of varlink in podman. this can now
be done with BUILDTAGS passed to the build though perhaps in the future
will be better.

the default is to build with varlink

Signed-off-by: baude <bbaude@redhat.com>

squash! make varlink optional for podman

The API.md and cmd/podman/varlink/ioprojectatomicpodman.go targets
will continue to work regardless of the presence (or not) of 'varlink'
is in BUILDTAGS.  However, cmd/podman/varlink/ioprojectatomicpodman.go
is now only required by the podman target when BUILDTAGS contains
'varlink'.

API.md had also been an podman dependency since 5b2627dd (Makefile:
Drop find-godeps.sh for podman target, 2018-05-15, #776) when I
expanded varlink_api_generate.  It had been an indirect podman
dependency (via varlink_api_generate) since 25263558 (Generate varlink
API documentation automatically, 2018-05-07, #734).  But the podman
executable obviously doesn't depend on the Markdown file, so I'm
removing that dependency here.

Signed-off-by: baude <bbaude@redhat.com>

squash! make varlink optional for podman

The command-pointer approach will scale well if/when we add additional
optional commands behind their own build tags, because those tags
won't all be competing for the same getOptionalCommands namespace.

Signed-off-by: W. Trevor King <wking@tremily.us>

Closes: #987
Approved by: rhatdan
2018-06-24 10:54:40 +00:00
7182339d1a Merge pull request #989 from mheon/bump-0.6.4
Bump to 0.6.4
2018-06-22 15:57:57 -04:00
b8eeb4d128 Bump gitvalidation epoch
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-06-22 15:55:06 -04:00
32bfb5107c Bump to v0.6.5-dev
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-06-22 15:55:05 -04:00
d5beb2f4fe Bump to v0.6.4
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
v0.6.4
2018-06-22 15:54:57 -04:00
55dd266ec1 Add tests for podman refresh
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #981
Approved by: baude
2018-06-22 19:26:46 +00:00
7cdddf7fad Point podman-refresh at the right manpage
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #981
Approved by: baude
2018-06-22 19:26:46 +00:00
24a05e786d Add bash completions for podman refresh
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #981
Approved by: baude
2018-06-22 19:26:46 +00:00
f557523207 Add manpages for podman refresh
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #981
Approved by: baude
2018-06-22 19:26:46 +00:00
9d80bc1dec Move podman refresh under the container subcommand
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #981
Approved by: baude
2018-06-22 19:26:46 +00:00
c3602075ec Make CGroups cleanup optional on whether they exist
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #981
Approved by: baude
2018-06-22 19:26:46 +00:00
d2f981fd0b Add podman refresh command
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #981
Approved by: baude
2018-06-22 19:26:46 +00:00
3343456717 Add Refresh() to ctrs to refresh state after db change
The Refresh() function is used to reset a container's state after
a database format change to state is made that requires migration

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

Closes: #981
Approved by: baude
2018-06-22 19:26:46 +00:00
7a7d0f1446 Add information about the configuration files to the install docs
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #988
Approved by: mheon
2018-06-22 18:59:58 +00:00
2f0f9944b6 Add unittests and fix bugs
* Improved error messages
* Improved checking of user input

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

Closes: #978
Approved by: mheon
2018-06-22 17:25:44 +00:00
3092d20847 Fix docs on --sig-proxy to match current behaviour
Signals are proxied to the container process whether or not
the tty is used

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

Closes: #984
Approved by: mheon
2018-06-22 15:42:01 +00:00
088d5af879 Podman history now prints out intermediate image IDs
If the intermediate image exists in the store, podman history
will show the IDs of the intermediate image of each layer.

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

Closes: #982
Approved by: mheon
2018-06-22 15:19:34 +00:00
89af35175d Add cap-add and cap-drop to build man page
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>

Closes: #968
Approved by: mheon
2018-06-22 14:55:32 +00:00