Commit graph

1292 commits

Author SHA1 Message Date
Jhon Honce
1d7cb7cc48 V2 podman images/image list
* Updated entities to support flags/options
* Updated bindings caused by entities changes
* Removed handlers.ImageSummary in favor of entities.ImageSummary

* Introduced StringSet() container object to simply error checking

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-24 16:06:01 -07:00
Jhon Honce
77a2af8817 Combine GlobalFlags and EngineFlags into EngineOptions
* EngineOptions obtained in command via
  `opt, err := registry.Options(cmd)`

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-24 11:03:13 -07:00
OpenShift Merge Robot
c29a4c6904
Merge pull request #5589 from giuseppe/rootlessport-use-unix
rootlessport: use x/sys/unix instead of syscall
2020-03-24 18:19:36 +01:00
Jhon Honce
2c698f0140 Complete podmanV2 history command
* All format options now implemented

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-24 07:40:34 -07:00
OpenShift Merge Robot
0334c8d872
Merge pull request #5598 from marusak/doc_commit_endpoint
Correctly document libpod commit endpoint
2020-03-24 15:01:42 +01:00
Giuseppe Scrivano
720f0bc562
rootlessport: use x/sys/unix instead of syscall
Dup2 is not defined on arm64 in the syscall package.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-03-24 13:56:20 +01:00
OpenShift Merge Robot
3dbf2cb5af
Merge pull request #5581 from baude/v2containers
podmanv2 add core container commands
2020-03-24 13:12:06 +01:00
Matej Marusak
eb36f54717 Correctly document libpod commit endpoint
In #5588 it was forgotten and documentation still points to `/commit`.

Signed-off-by: Matej Marusak <mmarusak@redhat.com>
2020-03-24 08:37:54 +01: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
Brent Baude
12e78155e1 apiv2 container commit for libpod
add an endpoint for a libpod specific commit.  add the abilility to define the format.  also update documentation accordingly.

Fixes: #5586

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-23 14:14:17 -05:00
OpenShift Merge Robot
48b3143656
Merge pull request #5436 from QiWang19/rm_created_ctr
container prune remove state created, configured
2020-03-23 15:45:26 +01:00
OpenShift Merge Robot
72a2011cb1
Merge pull request #5567 from rhatdan/service
Add APIV2 service files
2020-03-23 11:42:22 +01:00
OpenShift Merge Robot
98687ad4a6
Merge pull request #5552 from giuseppe/rootlessport-handle-sigpipe
rootlessport: handle SIGPIPE
2020-03-22 20:27:58 +01:00
Brent Baude
9536560b4f podmanv2 add core container commands
add core container commands for podmanv2: kill, pause, restart, rm, stop, unpause

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-22 13:24:45 -05:00
OpenShift Merge Robot
89a3e5979b
Merge pull request #5579 from mtrmac/macOS-unit-tests
Make macOS unit tests runnable
2020-03-21 14:48:50 +01:00
OpenShift Merge Robot
195a82ffbc
Merge pull request #5577 from baude/v2volumecreate
podmanv2 volume create
2020-03-21 14:46:39 +01:00
OpenShift Merge Robot
e1f2851976
Merge pull request #5578 from baude/v2podexists
podmanv2 pod exists
2020-03-21 12:25:30 +01:00
OpenShift Merge Robot
77187daf07
Merge pull request #5555 from mheon/pod_specgen
Add basic structure of a spec generator for pods
2020-03-21 00:31:03 +01:00
Brent Baude
c3a9ff1174 podmanv2 volume create
add volume create

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-20 18:27:08 -05:00
Miloslav Trmač
d48b0b5131 Add stubs for pkg/adapter/terminal_linux.go
Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2020-03-21 00:21:59 +01:00
Miloslav Trmač
e625b57d22 Only run TestGetImageConfigStopSignal on Linux
... because the implementation requires Linux-only pkg/signal

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2020-03-21 00:21:59 +01:00
Miloslav Trmač
036531c006 Fix the pkg/specgen/SpecGenerator.getSeccompConfig stub
Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2020-03-20 23:25:15 +01:00
Brent Baude
0feec5de98 podmanv2 pod exists
add pod exists for podman v2

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-20 17:07:57 -05:00
Matthew Heon
cec2e6d706 Add basic structure of a spec generator for pods
This will be used for remote creation of pods initially.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2020-03-20 16:07:46 -04:00
Brent Baude
f76aad0d47 [CI:DOCS]fix type issue in pod binding test
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-20 14:45:27 -05: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
4a00409bf8 fix remote connection use of context
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-20 13:15:50 -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
Daniel J Walsh
8ab686f0e0
Add APIV2 service files
Also fix issue in pods_test.go

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2020-03-20 09:09:42 -04:00
OpenShift Merge Robot
d927b43350
Merge pull request #5525 from baude/apiv2bindinglogs
apiv2 add bindings for logs|events
2020-03-19 23:49:44 +01:00
OpenShift Merge Robot
aa6c8c2e55
Merge pull request #5088 from mheon/begin_exec_rework
Begin exec rework
2020-03-19 22:09:40 +01: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
093d9ef673
Merge pull request #5546 from jwhonce/wip/entities
V2 podman command
2020-03-19 18:19:43 +01:00
OpenShift Merge Robot
b43e249b1d
Merge pull request #5554 from baude/compatfix
fix reported compat issues
2020-03-19 17:34:39 +01:00
Brent Baude
d375424854 fix reported compat issues
honor -1 in in list containers for compatibility mode.  it is commonly used to indicate no limit.

change the json id parameter to Id in container create.

Fixes: #5553

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-19 10:05:10 -05:00
Giuseppe Scrivano
bebc9d8145
rootlessport: handle SIGPIPE
when a sigpipe is received the stdout/stderr pipe was closed, so
reopen them with /dev/null.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-03-19 15:59:30 +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
Brent Baude
d1c26af144 apiv2 add bindings for logs|events
add go-bindings for logs and events. tests were also added.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-19 09:38:00 -05:00
Giuseppe Scrivano
1091440e5d
rootless: fix usage with hidepid=1
when /proc is mounted with hidepid=1 a process doesn't see processes
from the outer user namespace.  This causes an issue reading the
cmdline from the parent process.

To address it, always read the command line from /proc/self instead of
using /proc/PARENT_PID.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-03-19 11:18:23 +01:00
Jhon Honce
fbe743501e V2 podman command
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-18 16:41:12 -07:00
OpenShift Merge Robot
464a1cd485
Merge pull request #5540 from jwhonce/issues/5531
Reduce CPU usage when --timeout=0
2020-03-18 21:55:09 +01:00
OpenShift Merge Robot
d66d542820
Merge pull request #5544 from baude/apiv2serveswagger
serve swagger when present
2020-03-18 21:26:52 +01:00
Brent Baude
52c8350530 serve swagger when present
register the swagger endpoint and add some error handling for when the swagger file does not exist

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-03-18 14:34:14 -05:00
Ed Santiago
f557cf91d2 swagger: more consistency fixes
Some new 'manifests' entries have the wrong {name} parameter

Signed-off-by: Ed Santiago <santiago@redhat.com>
2020-03-18 13:33:07 -06:00
OpenShift Merge Robot
45e7cbfef6
Merge pull request #5480 from vrothberg/auto-updates
auto update containers in systemd units
2020-03-18 18:27:33 +01:00
Jhon Honce
651ddd3560 Reduce CPU usage when --timeout=0
* Add second go routine for when a Timer is not needed.
* goimports updated some project files

Fixes #5531

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-03-18 10:27:25 -07:00
Matthew Heon
118e78c5d6 Add structure for new exec session tracking to DB
As part of the rework of exec sessions, we need to address them
independently of containers. In the new API, we need to be able
to fetch them by their ID, regardless of what container they are
associated with. Unfortunately, our existing exec sessions are
tied to individual containers; there's no way to tell what
container a session belongs to and retrieve it without getting
every exec session for every container.

This adds a pointer to the container an exec session is
associated with to the database. The sessions themselves are
still stored in the container.

Exec-related APIs have been restructured to work with the new
database representation. The originally monolithic API has been
split into a number of smaller calls to allow more fine-grained
control of lifecycle. Support for legacy exec sessions has been
retained, but in a deprecated fashion; we should remove this in
a few releases.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-03-18 11:02:14 -04: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