Commit graph

680 commits

Author SHA1 Message Date
OpenShift Merge Robot
7d2632872a
Merge pull request #2120 from rhatdan/volume
Fix handling of nil volumes
2019-01-10 11:58:08 -08:00
OpenShift Merge Robot
4fb6045087
Merge pull request #2108 from QiWang19/from1899
Fix 'image trust' from PR1899
2019-01-10 11:57:59 -08:00
OpenShift Merge Robot
3c44c532d1
Merge pull request #2127 from QiWang19/fixsigstore
fix up sigstore path
2019-01-10 11:39:10 -08:00
OpenShift Merge Robot
c3f632d85a
Merge pull request #2126 from giuseppe/set-prlimit
podman: bump RLIMIT_NOFILE also without CAP_SYS_RESOURCE
2019-01-10 11:38:59 -08:00
Qi Wang
b208b86dda fix up sigstore path
Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-01-10 12:18:37 -05:00
Giuseppe Scrivano
a2c1a2df54
podman: bump RLIMIT_NOFILE also without CAP_SYS_RESOURCE
If we are not able to make arbitrary changes to the RLIMIT_NOFILE when
lacking CAP_SYS_RESOURCE, don't fail but bump the limit to the maximum
allowed.  In this way the same code path works with rootless mode.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-10 17:43:58 +01:00
Daniel J Walsh
f2ff550967
Fix handling of nil volumes
Currently if a user passes in a -v with
-v $bogus:/foobar

We crash.  This will throw a proper error.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-01-10 10:27:39 -05:00
Giuseppe Scrivano
4e234136bc
sign: make all error messages lowercase
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-10 13:37:26 +01:00
Giuseppe Scrivano
23633f4619
sign: use filepath.Join instead of fmt.Sprintf
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-10 13:13:41 +01:00
OpenShift Merge Robot
64627d910b
Merge pull request #2114 from vrothberg/issue-2107
apparmor: apply default profile at container initialization
2019-01-10 03:34:54 -08:00
Qi Wang
b01b2a78f4 Fix 'image trust' from PR1899
Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-01-09 17:48:47 -05:00
W. Trevor King
0f6535cf6b libpod/image: Use ParseNormalizedNamed in RepoDigests
Avoid generating
quay.io/openshift-release-dev/ocp-release@sha256@sha256:239... and
similar when the image name is already digest-based [1].  It's not
clear exactly how we get into this state, but as shown by the unit
tests, the new code handles this case correctly (while the previous
code does not).

[1]: https://github.com/containers/libpod/issues/2086

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

Closes: #2106
Approved by: rhatdan
2019-01-09 22:29:18 +00:00
Valentin Rothberg
edb285d176 apparmor: apply default profile at container initialization
Apply the default AppArmor profile at container initialization to cover
all possible code paths (i.e., podman-{start,run}) before executing the
runtime.  This allows moving most of the logic into pkg/apparmor.

Also make the loading and application of the default AppArmor profile
versio-indepenent by checking for the `libpod-default-` prefix and
over-writing the profile in the run-time spec if needed.

The intitial run-time spec of the container differs a bit from the
applied one when having started the container, which results in
displaying a potentially outdated AppArmor profile when inspecting
a container.  To fix that, load the container config from the file
system if present and use it to display the data.

Fixes: #2107
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-01-09 22:18:11 +01:00
OpenShift Merge Robot
c37f731596
Merge pull request #2040 from QiWang19/signimg
Support podman image sign
2019-01-09 09:09:10 -08:00
OpenShift Merge Robot
c9d63fe89d
Merge pull request #2097 from debarshiray/wip/debarshiray/podman-exec-workdir
Add a --workdir option to 'podman exec'
2019-01-08 10:21:14 -08:00
Debarshi Ray
867669374c Add a --workdir option to 'podman exec'
Signed-off-by: Debarshi Ray <rishi@fedoraproject.org>
2019-01-08 17:42:37 +01:00
Debarshi Ray
e02199f2a4 Default --sig-proxy to true for 'podman start --attach'
The --sig-proxy option in both 'podman attach' and 'podman run' default
to true, and there's no reason for 'podman start --attach' to be any
different. However, since it only makes sense to proxy signals when
the container is attached, 'podman start --sig-proxy' will continue to
error if --attach isn't used.

Signed-off-by: Debarshi Ray <rishi@fedoraproject.org>
2019-01-08 16:34:09 +01:00
OpenShift Merge Robot
9474b8cea2
Merge pull request #2099 from mheon/config_to_containerconfig
Rename libpod.Config back to ContainerConfig
2019-01-08 07:06:09 -08:00
Qi Wang
bce22dc621 [WIP]Support podman image sign
Generate a signature claim for an image using user keyring (--sign-by). The signature file will be stored in simple json format under the default or the given directory (--directory or yaml file in /etc/containers/registries.d/).

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-01-08 09:53:18 -05:00
Anders F Björklund
83ac4f8277 Honor image environment variables with exec
Was reading the "env" argument twice instead of image.

Closes #2063

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2019-01-07 21:07:23 +01:00
OpenShift Merge Robot
8c8d895d66
Merge pull request #2098 from baude/remote
Add ability to build golang remote client
2019-01-07 11:54:55 -08:00
Matthew Heon
5ed23327a9 Rename libpod.Config back to ContainerConfig
During an earlier bugfix, we swapped all instances of
ContainerConfig to Config, which was meant to fix some data we
were returning from Inspect. This unfortunately also renamed a
libpod internal struct for container configs. Undo the rename
here.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-01-07 14:37:51 -05:00
baude
41fb81d074 Add ability to build golang remote client
Add the ability to build a remote client in golang that uses all
the same front-end cli code and output code. The initial limitations
here are that it can only be a local client while the bridge and
resolver code is being written for the golang varlink client.

Tests and docs will be added in subsequent PRs.

Signed-off-by: baude <bbaude@redhat.com>
2019-01-07 12:43:57 -06:00
OpenShift Merge Robot
148b4920dc
Merge pull request #2075 from baude/runlabelname
container runlabel NAME implementation
2019-01-07 08:43:53 -08:00
OpenShift Merge Robot
a219431a31
Merge pull request #2093 from vrothberg/issue-2092
podman-login: adhere to user input
2019-01-07 06:39:37 -08:00
OpenShift Merge Robot
ef29a30712
Merge pull request #2088 from giuseppe/umask-to-0
podman: set umask to 022
2019-01-07 05:26:34 -08:00
Giuseppe Scrivano
4d31065cc5
podman: set umask to 022
be sure there are no bits in the umask that prevent us for creating
directories with mode 0755.  Set the umask very early in the program
startup.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-01-07 13:53:15 +01:00
Valentin Rothberg
2c75cd92aa podman-login: adhere to user input
* Do not try to login with existing credentials when the user specifies a
  username or password on the CLI.

* Improve error messages.

* Use specified tls-verify switch and cert-dir for all requests.

Fixes: #2092
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2019-01-07 12:07:31 +01:00
OpenShift Merge Robot
b83b07cb47
Merge pull request #2082 from rhatdan/runc
Update vendor of runc
2019-01-06 17:27:50 -08:00
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