Commit graph

1599 commits

Author SHA1 Message Date
Sujil02
ec4060aef6 Ability to prune container in api V2
Adds ability to prune containers for v2.
Adds client side prompt with force flag and filters options to prune.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-04-15 11:17:33 -04:00
Daniel J Walsh
8fea3d0ab5
Need to set security options even if user does not specify options
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-13 17:09:22 -04:00
Jhon Honce
f8892e7c6b Refactor service idle support
* Move connection tracking into APIServer using ConnState()
* Remove Connection counters from CLI code
* Update events handler to support client not closing connection
* Improve logging messages

Fixes #5599

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-13 08:11:36 -07:00
Jhon Honce
e0847f5457 V2 podman system service
* Added support for system service
* Enabled linting on the varlinkapi source, needed to support V2
  service command
* Added support for PODMAN_SOCKET

Skip linting deprecated code

Rather than introduce bugs by correcting deprecated code, linting the
code is being skipped. Code that is being ported into V2 is being
checked.

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-04-07 19:22:10 -07:00
Daniel J Walsh
b0592e5540
podman info needs to be run within the user namespace
Accidently removed podman info from user namespace

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-07 10:02:50 -04:00
OpenShift Merge Robot
7d95e0c47a
Merge pull request #5507 from baude/newinfo
refactor info
2020-04-06 21:27:52 +02:00
OpenShift Merge Robot
a858b3a6a3
Merge pull request #5705 from rhatdan/reset
Cleanup whether to enter user namespace
2020-04-06 20:48:05 +02:00
Brent Baude
e20ecc733c refactor info
the current implementation of info, while typed, is very loosely done so.  we need stronger types for our apiv2 implmentation and bindings.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-04-06 12:45:42 -05:00
OpenShift Merge Robot
e318b09b68
Merge pull request #5620 from cfelder/play-kube-networking
Add support for specifying CNI networks in podman play kube
2020-04-06 18:45:25 +02:00
Daniel J Walsh
9f2d9679d7
Cleanup whether to enter user namespace for rootless commands
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-03 15:25:57 -04:00
Daniel J Walsh
1f8569f7d7
Fix environment handling from containers.conf
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-04-02 13:10:08 -04:00
OpenShift Merge Robot
56ab9e4cc8
Merge pull request #5649 from jwhonce/wip/varlink
V2 Move varlink home
2020-03-31 20:34:36 +02:00
Daniel J Walsh
3449b27cd1
Switch to using --time as opposed to --timeout to better match Docker.
We need to consistently use --time rather then --timeout throughout the code.
Fix locations where timeout defaults are not set correctly as well.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-31 08:50:32 -04:00
OpenShift Merge Robot
95d9a1e667
Merge pull request #5664 from giuseppe/rootless-make-error-not-fatal
rootless: make cgroup ownership detection not fatal
2020-03-30 17:50:06 +02:00
Jhon Honce
7a12e01556 V2 Move varlink home
* move cmd/podman/varlink/* to pkg/varlink to support podmanV2 refactor
* update Makefile
* reformatted all impacted code

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-30 08:18:35 -07:00
Giuseppe Scrivano
f59c948928
rootless: make cgroup ownership detection not fatal
do not fail if we cannot detect the cgroup ownership.  The detection
fails when running in a container, since the cgroup showed in
/proc/self/cgroup is not accessible, due to the runtime mounting it
directly as the cgroup root.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-03-30 12:24:10 +02:00
Daniel J Walsh
366001fb5f
Update vendor of boltdb and containers/image
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-29 06:16:27 -04:00
Daniel J Walsh
4352d58549
Add support for containers.conf
vendor in c/common config pkg for containers.conf

Signed-off-by: Qi Wang qiwan@redhat.com
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-27 14:36:03 -04:00
Christian Felder
91dbdff77e Add support for specifying CNI networks in podman play kube
Fixes: #5609
Signed-off-by: Christian Felder <c.felder@fz-juelich.de>
2020-03-27 10:00:01 +01:00
Stefano Pogliani
df568e4963
Support label filters for podman pod ps.
Update the podman pod ps command to support filtering by labels.
This brings the command in line with the documentation as well as
the functionality by the containers equivalent podman ps.

Signed-off-by: Stefano Pogliani <stefano@spogliani.net>
2020-03-26 23:11:07 +00:00
OpenShift Merge Robot
02de8d576b
Merge pull request #5560 from QiWang19/remote_ceds
Use creds form PullImage remote
2020-03-23 21:22:41 +01:00
Daniel J Walsh
31d14457a5
Merge pull request #5582 from kunalkushwaha/bugfix-5001
Improved readability in image json output
2020-03-22 17:40:20 -04:00
Kunal Kushwaha
19bf7adedb Improved readability in image json output
Changes made in json output to improve readability of
podman images output.

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2020-03-22 21:38:07 +09:00
Miloslav Trmač
de7bcca7d5 Add stubs for cmd/podman in non-Linux local mode
This is _only_ to be able able to run unit tests.

I didn't even TRY running the result, I'm scared of what it would do.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2020-03-21 00:21:59 +01:00
Miloslav Trmač
bdfe8e699e Make cmd/podman/shared.GenerateCommand tests Linux-only
They rely on existence of /proc/self/exe .

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2020-03-21 00:21:59 +01:00
OpenShift Merge Robot
ccc30c606e
Merge pull request #5539 from sujil02/issue-5461
Implemented --iidfile for podman commit
2020-03-20 11:45:32 +01:00
Sujil02
5efa6dae90 Implemented --iidfile for podman commit
Added flag to Write the image ID to the file with podman commit command.
Fix to issue #5461

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-03-19 16:32:02 -04:00
Qi Wang
9ac58fd78e Use creds form PullImage remote
fix #5511
Adds creds argument to PullImage API and Enables podman-remote to pull image with --creds

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-03-19 14:38:12 -04:00
OpenShift Merge Robot
1be6178915
Merge pull request #5445 from sujil02/podFilter-new
Filter pods through pod list api
2020-03-19 15:50:50 +01:00
Sujil02
15326f051d Filter pods through pod list api
Refactored current filter pods flow through the shared pod functions
so filter pod functionalities can be shared between api and cmd.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-03-17 17:46:20 -04:00
Valentin Rothberg
f4e873c4e1 auto updates
Add support to auto-update containers running in systemd units as
generated with `podman generate systemd --new`.

`podman auto-update` looks up containers with a specified
"io.containers.autoupdate" label (i.e., the auto-update policy).

If the label is present and set to "image", Podman reaches out to the
corresponding registry to check if the image has been updated.  We
consider an image to be updated if the digest in the local storage is
different than the one of the remote image.  If an image must be
updated, Podman pulls it down and restarts the container.  Note that the
restarting sequence relies on systemd.

At container-creation time, Podman looks up the "PODMAN_SYSTEMD_UNIT"
environment variables and stores it verbatim in the container's label.
This variable is now set by all systemd units generated by
`podman-generate-systemd` and is set to `%n` (i.e., the name of systemd
unit starting the container).  This data is then being used in the
auto-update sequence to instruct systemd (via DBUS) to restart the unit
and hence to restart the container.

Note that this implementation of auto-updates relies on systemd and
requires a fully-qualified image reference to be used to create the
container.  This enforcement is necessary to know which image to
actually check and pull.  If we used an image ID, we would not know
which image to check/pull anymore.

Fixes: #3575
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-17 17:18:56 +01:00
Brent Baude
9ca4b6c6f5 add os|arch attributes when building
when building images, we can now add the os and arch of the image using overrides from the commandline.  the commandline options set sane defaults so we use those as well.

Fixes: #5503

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-15 12:49:42 -05:00
Brent Baude
3aa58ccd0a remove imagefilter for varlink remote client
the api for getting images changed to use filters but back level podman versions cannot handle it.  so temporarily disabling the filtering for remote clients until the restful approach can be used.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-12 12:43:32 -05:00
OpenShift Merge Robot
235f367861
Merge pull request #5469 from giuseppe/no-size-create-container
create: do not calculate image size
2020-03-12 10:20:02 -04:00
Giuseppe Scrivano
8741eb8a92
create: do not calculate image size
calculating the image size can be an expensive operation.  Avoid doing
it when creating a new container since the size is not needed.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-03-12 09:51:17 +01:00
Ed Santiago
3d1bff6db9 man page cross-reference fixes: part 2
The other direction: fix or clean up elements documented in
man pages but which did/do not exist in actual podman:

  * runlabel: add missing "-n" alias for --name

And, remove man page entries for nonexistent options:

  * podman commit: --iidfile
  * podman container runlabel: --rootfs, --storage
  * podman create: --cpu-count

There are two problems I don't know how to deal with. Both
are related to main_local.go:rootCmd.PersistentFlags() :

  1) podman-build.1.md documents --cni-config-dir and
     --runtime options, but these are not actually options
     under podman build; they are global options. The
     documentation in this man page differs from that
     under podman-build.

  2) podman ps implements a binary --namespace option,
     but this option does not (cannot?) appear in --help
     because there's a global --namespace string option
     and Cobra somehow gets confused about this.

Do we really intend for global options to be parsed on
the right-hand side of subcommands? This strikes me as
unintuitive and potentially confusing, although the
fact that it has taken me this long to discover it
suggests that it's not _that_ confusing.

Suggestions welcome. I can file issues for 1/2 above,
or simply teach my script to special-case ignore them.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-11 11:05:37 -06:00
Ed Santiago
281def2647 man pages: fix inconsistencies
I wrote a script to cross-reference podman --help against
man pages. It found a bunch of inconsistencies fix them:

 * options missing from man pages
 * options misspelled or misformatted in man pages (usually
   misplaced asterisks or missing dashes, but see --dns-opt)
 * one spurious comma in the actual source file --help

This is a fix in which I iterate over 'podman CMD --help'
and check for presence in man pages. The other way around
(look for flags in man pages, check podman CMD --help)
is probably impossible: there are too many special cases

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-10 15:03:59 -06:00
Valentin Rothberg
7534f9dd1a hide --trace flag
The tracing flag is not really something users should worry about.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-10 08:33:39 +01:00
Valentin Rothberg
7b10b71445 podman --help: mention defaults of bools
While string variables are shown to expect a string argument, boolean
variables are not.  This easily tricks users into believing they are
simple switches without arguments.  Hence, explicitly mention the
default to clarify it a bit more.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-10 08:33:39 +01:00
Valentin Rothberg
6f1ba67300 use storage/pkg/homedir
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-09 08:57:23 +01:00
OpenShift Merge Robot
f378e82e2d
Merge pull request #5412 from rhatdan/tmpdir
Allow users to set TMPDIR environment
2020-03-08 17:03:59 +01:00
Daniel J Walsh
ac354ac94a
Fix spelling mistakes in code found by codespell
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-07 10:30:44 -05:00
Brent Baude
8b5e2a6297 add default network for apiv2 create
during container creation, if no network is provided, we need to add a default value so the container can be later started.

use apiv2 container creation for RunTopContainer instead of an exec to the system podman. RunTopContainer now also returns the container id and an error.

added a libpod commit endpoint.

also, changed the use of the connections and bindings slightly to make it more convenient to write tests.

Fixes: 5366
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-06 14:31:45 -06:00
Daniel J Walsh
cb51707f91
Allow users to set TMPDIR environment
Some users have small /var/tmp directories and need to be able to specify a different location
for temporary files, which includes more space.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-06 10:21:37 -05:00
Valentin Rothberg
593eb7625a golangci: enable goimports
Enable the goimports linter and fix reports.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-05 20:03:44 +01:00
OpenShift Merge Robot
834f397db2
Merge pull request #5389 from openSUSE/fix-image-sign-help
Fix podman image sign help output
2020-03-04 22:48:58 -05:00
OpenShift Merge Robot
797da2a57b
Merge pull request #5381 from vrothberg/ENVFIX
env: set "container" to current binary
2020-03-04 13:26:48 -05:00
Valentin Rothberg
6d2d6898f8 env: don't set "container" env
Leave setting the "container" variable to consumers of pkg/env.
Podman is now hard-setting it to "podman" while "libpod" will
set it internally to "libpod" if it's unset.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-03-04 17:07:47 +01:00
OpenShift Merge Robot
90eef95cb1
Merge pull request #4772 from boaz0/closes_4628
Add the rmi flag to podman-run to delete container image
2020-03-04 10:58:10 -05:00
Sascha Grunert
6e1de159eb
Fix podman image sign help output
Adjust the help output to mention `podman image sign` instead of just
`podman sign`.

Signed-off-by: Sascha Grunert <sgrunert@suse.com>
2020-03-04 09:22:53 +01:00