Commit Graph

1667 Commits

Author SHA1 Message Date
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
Brent Baude
c81e065149 podmanv2 enable remote wait
enable remote container wait with condition

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-20 14:33:33 -05:00
Brent Baude
baf3a9b3a7 use boolreport for containerexists response
in the case of exists, use a boolreport structure so that responses can be consistent pointer and error

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-20 13:01:24 -05:00
Brent Baude
87293028e6 podmanv2 container exists|wait
enable container exists and wait for podmanv2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-20 12:54:45 -05: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
Jhon Honce
46b338c77d Add guildline for writing podman V2 CLI commands
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-19 11:54:27 -07:00
Brent Baude
9e886d3a4a [CI:DOCS]remove podmanv2 binary
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-19 12:23:08 -05:00
OpenShift Merge Robot
093d9ef673 Merge pull request #5546 from jwhonce/wip/entities
V2 podman command
2020-03-19 18:19:43 +01: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
Jhon Honce
fbe743501e V2 podman command
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-18 16:41:12 -07: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
Boaz Shuster
11e5c53d11 Add the rmi flag to podman-run to delete container image
The --rmi flag will delete the container image after its execution
unless that image is already been used by another container(s).

This is useful when one wants to execute a container once and remove
any resources attached to it.

Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2020-03-03 14:27:11 +02:00
Valentin Rothberg
ad8e0e5e49 consolidate env handling into pkg/env
Env-variable related code is scattered across several packages making it
hard to maintain and extend.  Consolidate the code into a new pkg/env
package.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-03-03 11:47:24 +01:00
OpenShift Merge Robot
a58bf77d3e Merge pull request #5244 from Akasurde/i4962
Add cmd flag to show container name in log
2020-02-28 18:55:58 +01:00
Giuseppe Scrivano
c59080b463 build: specify input fd to buildah
It solves a tight loop with poll as stdin will be initialized to
/dev/null in buildah/imagebuildah/StageExecutor.Run.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-02-28 16:24:08 +01:00
Jhon Honce
997e3c8863 Remove 1 sec delay
* Stop closing net.Listener() twice on interrupt
 * Do not report error if closing server twice

Fixes #5311

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-02-25 11:04:20 -07:00
OpenShift Merge Robot
6babc9f20c Merge pull request #5305 from mheon/check_for_common_deadlocks
Add basic deadlock detection for container start/remove
2020-02-25 13:17:12 +01:00
Giuseppe Scrivano
1e94c2964d build: move initialization after SetXdgDirs
otherwise it triggers the config file initialization from
vendor/github.com/containers/common/pkg/config before the init() in
main.go can set correctly XDG_RUNTIME_DIR and DBUS_SESSION_BUS_ADDRESS
when they are missing.

commit 96de762eed introduced the
regression.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-02-24 22:39:19 +01:00
Matthew Heon
4004f646cd Add basic deadlock detection for container start/remove
We can easily tell if we're going to deadlock by comparing lock
IDs before actually taking the lock. Add a few checks for this in
common places where deadlocks might occur.

This does not yet cover pod operations, where detection is more
difficult (and costly) due to the number of locks being involved
being higher than 2.

Also, add some error wrapping on the Podman side, so we can tell
people to use `system renumber` when it occurs.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-02-24 09:29:34 -05:00
OpenShift Merge Robot
18dcb84d64 Merge pull request #4889 from baude/portsearch
fix port list by container with port
2020-02-23 13:00:10 -05:00
Ed Santiago
fab5b35b2a Friendly amendment: tests, and a help message
1) Help message for podman port was missing [PORT]

2) Add test for 'podman port'. And, actually, an entire
   networking test that I'd written some weeks ago but
   apparently didn't 'git add'.

Signed-off-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-23 11:04:39 -06:00
baude
5a1609b9cf fix port list by container with port
code was erronously misinterpretting the port as a containername.

Fixes: #1791832

Signed-off-by: baude <bbaude@redhat.com>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-23 11:03:56 -06:00
Brent Baude
0184714a82 Add --no-healthcheck command to create/run
Now support --no-healthcheck option to disable defined healthchecks in a container image.  --health-cmd=none remains supported as well.

Fixes: #5299

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-02-22 12:45:15 -06:00
Jhon Honce
0f0b4fd3c2 Add support for ssh:// and unix:// podman clients
* Make context keys package safe
 * Add support for PODMAN_HOST and PODMAN_SSHKEY
 * Add slight increasing delay when client connections fail
 * Remove usages of path.Join(), added JoinURL(). '/' is not OS
   dependent.

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-02-20 14:18:45 -07:00
OpenShift Merge Robot
e7d8bda870 Merge pull request #5268 from Akasurde/warn_bare_password
Warn user about --password cli option in login
2020-02-20 15:55:31 +01:00
Abhijeet Kasurde
db60abe3d8 Warn user about --password cli option in login
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
2020-02-20 15:27:01 +05:30
OpenShift Merge Robot
c8436cd870 Merge pull request #5253 from rhatdan/buildah
Update to the latest version of buildah
2020-02-20 10:56:06 +01:00
OpenShift Merge Robot
846405256b Merge pull request #5241 from mheon/pod_network_opts_add
Add network opts to pods
2020-02-20 10:39:15 +01:00
Daniel J Walsh
96de762eed Update to the latest version of buildah
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-02-19 16:04:00 -05:00