Commit Graph

1201 Commits

Author SHA1 Message Date
Daniel J Walsh
43686072d3 Update vendor of runc
Updating the vendor or runc to pull in some fixes that we need.
In order to get this vendor to work, we needed to update the vendor
of docker/docker, which causes all sorts of issues, just to fix
the docker/pkg/sysinfo.  Rather then doing this, I pulled in pkg/sysinfo
into libpod and fixed the code locally.

I then switched the use of docker/pkg/sysinfo to libpod/pkg/sysinfo.

I also switched out the docker/pkg/mount to containers/storage/pkg/mount

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-01-04 14:54:59 -05:00
baude
10a62d60a9 container runlabel NAME implementation
when using container runlabel, if a --name is not provided, we must
deduce the container name from the base name of the image to maintain
parity with the atomic cli.

fixed small bug where we split the cmd on " " rather than using fields could
lead to extra spaces in command output.

Signed-off-by: baude <bbaude@redhat.com>
2019-01-04 12:57:55 -06:00
Valentin Rothberg
75578aad61 add container-init support
Add support for executing an init binary as PID 1 in a container to
forward signals and reap processes.  When the `--init` flag is set for
podman-create or podman-run, the init binary is bind-mounted to
`/dev/init` in the container and "/dev/init --" is prepended to the
container's command.

The default base path of the container-init binary is `/usr/libexec/podman`
while the default binary is catatonit [1].  This default can be changed
permanently via the `init_path` field in the `libpod.conf` configuration
file (which is recommended for packaging) or temporarily via the
`--init-path` flag of podman-create and podman-run.

[1] https://github.com/openSUSE/catatonit

Fixes: #1670
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-01-04 11:42:03 +01:00
Daniel J Walsh
652a985998 podman build is not using the default oci-runtime
Currently if the user installs runc in an alternative path
podman run uses it but podman build does not.

This patch will pass the default oci runtime to be used by podman
down to the image builder.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-12-28 12:36:25 -05:00
Daniel J Walsh
a22f00d4c5 Allow alias for list, ls, ps to work
Allow multiple alias for listing containers and images.

Also fix documentation for umount and unmount

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-12-23 09:38:57 -05:00
Daniel J Walsh
c657dc4fdb Switch all referencs to image.ContainerConfig to image.Config
This will more closely match what Docker is doing.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-12-21 15:59:34 -05:00
Daniel J Walsh
4d13262405 Change all 'can not' to 'cannot' for proper usage
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-12-21 10:27:54 -05:00
Giuseppe Scrivano
d389ac45e5 export: fix usage with rootless containers
Fix usage of export when rootless containers are used without vfs.  We
join the conmon process namespaces as the container is running in a
different one.

There can be a problem if the user specify a different path for the
conmon process, and then the file is deleted.  In this case podman
won't be able to find the conmon process to join.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-12-21 09:46:06 +01:00
baude
1f3726f2cf skip test for blkio.weight when kernel does not support it
Signed-off-by: baude <bbaude@redhat.com>
2018-12-20 09:00:52 -06:00
OpenShift Merge Robot
2de6cadd6f Merge pull request #1967 from baude/kubereplay
Add Play
2018-12-20 05:41:38 -08:00
OpenShift Merge Robot
8ec8ee935e Merge pull request #1899 from QiWang19/trustimg
Support podman image trust command
2018-12-19 13:07:10 -08:00
baude
9b03cacc87 Add Play
podman play kube adds the ability for the user to recreate pods and containers
from a Kubernetes YAML file in libpod.

Signed-off-by: baude <bbaude@redhat.com>
2018-12-19 14:20:55 -06:00
Qi Wang
31edf47285 Support podman image trust command
Display the trust policy of the host system. The trust policy is stored in the /etc/containers/policy.json file and defines a scope of registries or repositories.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2018-12-19 13:36:11 -05:00
OpenShift Merge Robot
c8eaf59d5f Merge pull request #2021 from rhatdan/restart
Add information on --restart
2018-12-18 13:02:39 -08:00
OpenShift Merge Robot
9b6a70f6c9 Merge pull request #1935 from deuscapturus/master
add getlogin command
2018-12-18 12:27:29 -08:00
OpenShift Merge Robot
08eeef8a85 Merge pull request #2019 from baude/kubeserviceinline
generate service object inline
2018-12-18 12:13:59 -08:00
Daniel J Walsh
59635cd186 Add information on --restart
We need to recommend that users use Systemd unit files if they want
the container to restart automatically.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-12-18 12:50:50 -05:00
baude
0702e71ca5 generate service object inline
no longer require the service object be output to a different file; we should be
doing this inline with the pods for user convenience.

Signed-off-by: baude <bbaude@redhat.com>
2018-12-18 09:17:30 -06:00
OpenShift Merge Robot
c588c31cdb Merge pull request #2018 from baude/rmiinfra
display proper error when rmi -fa with infra containers
2018-12-17 10:57:56 -08:00
baude
f020f3146d display proper error when rmi -fa with infra containers
when deleting infra containers, we were not checking the error of the
image deletion and therefore resulting in not reporting the error.

Fixes #1991

Signed-off-by: baude <bbaude@redhat.com>
2018-12-17 11:11:23 -06:00
Theodore Cowan
d5647fe053 add --get-login command to podman-login.
Returns user if user is logged-in to the registry.  Returns error
if not logged in with non-zero status code.

Signed-off-by: Theodore Cowan <theodore-cowan@pluralsight.com>
2018-12-17 11:20:40 -05:00
TomSweeneyRedHat
92c7f4eb9e Show image only once with images -q
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2018-12-17 11:08:54 -05:00
OpenShift Merge Robot
a1902dc48b Merge pull request #1986 from baude/varlinkendpoints
Clean up some existing varlink endpoints
2018-12-17 07:45:51 -08:00
OpenShift Merge Robot
93b5ccfe94 Merge pull request #1994 from giuseppe/rootless-mount-allow-only-from-vfs
mount: allow mount only when using vfs
2018-12-13 13:46:38 -08:00
baude
0c3501acb5 runlabel should sub podman for docker|/usr/bin/docker
Many RH images use a fully-qualified path to docker in their RUN
labels.  While initially we wanted an exact match for substituting
commands, docker is a good exception.

Bug #1623282

Signed-off-by: baude <bbaude@redhat.com>
2018-12-13 10:23:22 -06:00
OpenShift Merge Robot
e3a1a7efca Merge pull request #1989 from baude/deletecontainerfailstart
failed containers with --rm should remove themselves
2018-12-13 07:33:12 -08:00
baude
06d763d964 Clean up some existing varlink endpoints
Going through and adding options (like tls-verify, signature option, etc)
to some varlink endpoints (like push/pull) many of which had not been
updated since their original authoring.

Signed-off-by: baude <bbaude@redhat.com>
2018-12-12 12:53:09 -06:00
baude
9786542620 failed containers with --rm should remove themselves
when starting or running a container that has --rm, if the starting
container fails (like due to an invalid command), the container should
get removed.

Resolves: #1985

Signed-off-by: baude <bbaude@redhat.com>
2018-12-12 10:55:53 -06:00
Giuseppe Scrivano
a609e026a5 mount: allow mount only when using vfs
when using a driver different than vfs, the mount is probably in a
different mount namespace thus not accessible from the host.  Avoid
the confusion by not allowing mount when a different driver is used.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-12-12 11:57:30 +01:00
baude
37cbfadcc9 fix typo in kubernetes
Signed-off-by: baude <bbaude@redhat.com>
2018-12-11 12:14:33 -06:00
Giuseppe Scrivano
9a7416c342 rootless: fix restart when using fuse-overlayfs
With rootless containers we cannot really restart an existing container
as we would need to join the mount namespace as well to be able to reuse
the storage, so ensure the container is stopped first.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-12-11 10:24:06 +01:00
baude
078fd071c1 add more example usage to varlink endpoints
Signed-off-by: baude <bbaude@redhat.com>
2018-12-09 11:16:33 -06:00
OpenShift Merge Robot
5073638d83 Merge pull request #1953 from baude/podstoptimeout
add timeout to pod stop
2018-12-07 09:06:03 -08:00
baude
5209894100 add timeout to pod stop
like podman stop of containers, we should allow the user to specify
a timeout override when stopping pods; otherwise they have to wait
the full timeout time specified during the pod/container creation.

Signed-off-by: baude <bbaude@redhat.com>
2018-12-07 10:27:41 -06:00
OpenShift Merge Robot
49d9a8f951 Merge pull request #1928 from baude/podtokube
generate kube
2018-12-07 07:46:52 -08:00
Miloslav Trmač
489164fcfa Remove manual handling of insecure registries in (podman search)
Instead, just set SystemRegistriesConfPath and let the transport do it.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2018-12-06 23:34:59 +01:00
Miloslav Trmač
93e14b6198 Remove the forceSecure parameter on the pull call stack
DockerRegistryOptions.DockerInsecureSkipTLSVerify as an types.OptionalBool
can now represent that value, so forceSecure is redundant.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2018-12-06 23:34:59 +01:00
Miloslav Trmač
7407d6621c Remove the forceSecure parameter of Image.PushImageTo*
DockerRegistryOptions.DockerInsecureSkipTLSVerify as an types.OptionalBool
can now represent that value, so forceSecure is redundant.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2018-12-06 23:34:59 +01:00
Miloslav Trmač
b134951d14 Minimally update for the DockerInsecureSkipTLSVerify type change
Following SystemContext.DockerInsecureSkipTLSVerify, make the
DockerRegistryOne also an OptionalBool, and update callers.

Explicitly document that --tls-verify=true and --tls-verify unset
have different behavior in those commands where the behavior changed
(or where it hasn't changed but the documentation needed updating).

Also make the --tls-verify man page sections a tiny bit more consistent
throughout.

This is a minimal fix, without changing the existing "--tls-verify=true"
paths nor existing manual insecure registry lookups.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2018-12-06 23:34:59 +01:00
OpenShift Merge Robot
fb3ceeb385 Merge pull request #1905 from umohnani8/login
Pick registry to login from full image name as well
2018-12-06 12:08:49 -08:00
OpenShift Merge Robot
5c6e02b55b Merge pull request #1904 from umohnani8/volume
Add "podman volume" command
2018-12-06 08:59:13 -08:00
OpenShift Merge Robot
3e60de629d Merge pull request #1912 from baude/prune
Add ability to prune containers and images
2018-12-06 08:31:20 -08:00
Matthew Heon
e5335fd74c Remove --sync flag from podman rm
Per discussion with Dan, it would be better to automatically
handle potential runtime errors by automatically syncing if they
occur. Retaining the flag for `ps` makes sense, as we won't even
be calling the OCI runtime and as such won't see errors if the
state desyncs, but rm can be handled automatically.

The automatic desync handling code will take some additional work
so we'll land this as-is (sync on ps is enough to solve most
desync issues).

Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-12-06 09:10:45 -05:00
Matthew Heon
28bead8be8 Add --sync flag to podman ps
The previous commit added support for --sync to podman rm to
ensure state inconsistencies would not prevent containers from
being removed.

Add the flag to podman ps as well, so that all containers can be
forcibly synced and all state inconsistencies resolved.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-12-06 09:10:45 -05:00
Matthew Heon
a0c9be2061 Add --sync option to podman rm
With the changes made recently to ensure Podman does not hit the
OCI runtime as often to sync state, we can find ourselves in a
situation where the runtime's state does not match ours.

Add a --sync flag to podman rm to ensure we can still remove
containers when this happens.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-12-06 09:10:45 -05:00
umohnani8
4c70b8a94b Add "podman volume" command
Add support for podman volume and its subcommands.
The commands supported are:
	podman volume create
	podman volume inspect
	podman volume ls
	podman volume rm
	podman volume prune

This is a tool to manage volumes used by podman. For now it only handle
named volumes, but eventually it will handle all volumes used by podman.

Signed-off-by: umohnani8 <umohnani@redhat.com>
2018-12-06 10:17:16 +00:00
Urvashi Mohnani
a75b397ac1 Pick registry to login from full image name as well
podman login reg.io/username/image works as well now. It picks
the registry and checks for authentication, if none exist it
will prompt for username and password.
If the credentials exist but are not valid, it will prompt the
user for new valid credentials.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2018-12-06 09:33:16 +00:00
baude
e037427035 Add ability to prune containers and images
Allow user to prune unused/unnamed images, the layer images from building,
via podman rmi --prune.

Allow user to prune stopped/exiuted containers via podman rm --prune.

This should resolve #1910

Signed-off-by: baude <bbaude@redhat.com>
2018-12-05 19:57:54 -06:00
OpenShift Merge Robot
6bb56a1c97 Merge pull request #1924 from baude/mroevarlinkendpoints
Adding more varlink endpoints
2018-12-05 14:55:27 -08:00
OpenShift Merge Robot
50e754cd57 Merge pull request #1918 from mheon/use_db_paths
Use paths written in DB instead if they differ from our defaults
2018-12-05 00:55:48 -08:00