Commit graph

705 commits

Author SHA1 Message Date
Matthew Heon
6b9e9610d8 Enable cleanup processes for detached exec
The cleanup command creation logic is made public as part of this
and wired such that we can call it both within SpecGen (to make
container exit commands) and from the ABI detached exec handler.
Exit commands are presently only used for detached exec, but
theoretically could be turned on for all exec sessions if we
wanted (I'm declining to do this because of potential overhead).

I also forgot to copy the exit command from the exec config into
the ExecOptions struct used by the OCI runtime, so it was not
being added.

There are also two significant bugfixes for exec in here. One is
for updating the status of running exec sessions - this was
always failing as I had coded it to remove the exit file *before*
reading it, instead of after (oops). The second was that removing
a running exec session would always fail because I inverted the
check to see if it was running.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-20 16:11:05 -04:00
Matthew Heon
5ec56dc790 Add ability to clean up exec sessions with cleanup
We need to be able to use cleanup processes to remove exec
sessions as part of detached exec. This PR adds that ability. A
new flag is added to `podman container cleanup`, `--exec`, to
specify an exec session to be cleaned up.

As part of this, ensure that `ExecCleanup` can clean up exec
sessions that were running, but have since exited. This ensures
that we can come back to an exec session that was running but has
since stopped, and clean it up.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-20 16:11:05 -04:00
Matthew Heon
05a034118f Add CLI frontend for detached exec
Add a new ContainerEngine method for creating a detached exec
session, and wire in the frontend code to do this. As part of
this, move Streams out of ExecOptions to the function signature
in an effort to share the struct between both methods.

Fixes #5884

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-20 16:11:05 -04:00
Brent Baude
141b34f6be Fix remote integration for healthchecks
the one remaining test that is still skipped do to missing exec function

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-20 14:43:01 -05:00
Brent Baude
ce24e1139c govern remote attach and start
fixes a race where container would start before attach could occur resulting in an error.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-20 13:02:18 -05:00
Brent Baude
2624c043d1 Test fixes for remote integration
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-20 12:56:38 -05:00
Kunal Kushwaha
1dde2730e8 filter option added to network ls command.
filter option helps to filter output based on name or supported plugins
by CNI networks.

Signed-off-by: Kunal Kushwaha <kunal.kushwaha@gmail.com>
2020-05-20 02:53:47 +00:00
Brent Baude
8ec08a426e v2 enable remote integration tests
enable remote integration tests

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-19 14:26:19 -05:00
Brent Baude
ce56202b45 v2 podman remote attach, start, and run
for the remote client, add the ability to attach to a container, start a container, and run a container.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-15 10:09:45 -05:00
OpenShift Merge Robot
d5358e6764
Merge pull request #6215 from maxm123/master
Use the containers.conf cni_config_dir option for inspect and delete
2020-05-15 07:39:35 -07:00
OpenShift Merge Robot
a88cd9a22e
Merge pull request #6227 from adrianreber/typo
Fix checkpoint --leave-running
2020-05-15 06:23:32 -07:00
Jhon Honce
f587fa3ba3 Make convenience boxed true/false easier to use
* changed PFalse to &false
* changed PTrue to &true

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-05-14 13:35:59 -07:00
Maximilian Müller
48d83482db Use the libpod.conf cni_config_dir option for inspect and delete
The pkg/network/files.go methods currently use the constant '/etc/cni/net.d'
for network handling. This results in the unability of podman-network-inspect
and podman-network-rm to locate the cni network configuration files.
This commit propagates the libpod.Runtime through the networking methods and
finally makes use of its configuration (config.Network.NetworkConfigDir).
Closes #6212

Signed-off-by: Maximilian Müller <maxm123@techie.com>
2020-05-14 22:15:32 +02:00
Adrian Reber
7c7f4dbb51
Fix checkpoint --leave-running
There was typo in the variable name and in one place it was not
correctly passed to the next layer.

Signed-off-by: Adrian Reber <areber@redhat.com>
2020-05-14 14:29:04 +02:00
OpenShift Merge Robot
fa5b33e70b
Merge pull request #6211 from baude/v2remoteimagetree
enable remote image tree
2020-05-13 13:38:47 -07:00
Brent Baude
3fea2f0a91 enable remote image tree
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-13 09:41:39 -05:00
Brent Baude
cf502b99fe enable podman v2 networking for remote client
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-12 13:23:43 -05:00
OpenShift Merge Robot
38c4b9bcc0
Merge pull request #6182 from baude/v2remotedf
add podman remote system df
2020-05-12 09:05:03 -07:00
OpenShift Merge Robot
d6d94cfdd7
Merge pull request #6154 from baude/v2sign
v2podman image sign
2020-05-12 09:02:30 -07:00
Brent Baude
03c29c357f add podman remote system df
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-12 08:35:48 -05:00
OpenShift Merge Robot
46cf421ed7
Merge pull request #6181 from baude/v2remoteport
add port to podman remote command
2020-05-12 06:34:26 -07:00
OpenShift Merge Robot
caf46abd3a
Merge pull request #6101 from sujil02/systemreset-v2
Adds tunnel routes for system reset.
2020-05-12 03:32:20 -07:00
Valentin Rothberg
1c3bd95b81 auto-update: support authfiles
Support using custom authfiles for auto updates by adding a new
`--authfile` flag and passing it down into the backend.

Also do some minor fixes in the help text and the man page.

Fixes: #6159
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-12 10:20:48 +02:00
Sujil02
1c6ae73a89 Adds tunnel routes for system reset.
Adds tunnel routes for system reset.
Makes forces flag local as options are not propogated down the stack.
Adds relevant test cases and swagger docs.

Signed-off-by: Sujil02 <sushah@redhat.com>
2020-05-11 17:03:32 -04:00
Brent Baude
a36e8d8eaa add port to podman remote command
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-11 14:09:41 -05:00
Brent Baude
fbd0fccf89 v2podman image sign
this is a straight port to add the podman image sign command. no improvements or refactoring done

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-11 09:18:56 -05:00
Jhon Honce
931bd5ace6 V2 Impliment tunnelled podman version
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2020-05-08 15:57:26 -07:00
Brent Baude
1074a02ff8 v2 podman unshare command
add unshare command

add cp and init to container sub-command

allow mount to run as rootless

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-08 13:28:11 -05:00
OpenShift Merge Robot
13db0f2b61
Merge pull request #6118 from baude/v2bindingsenforce
set binding tests to required
2020-05-08 17:57:10 +02:00
OpenShift Merge Robot
dd7e3615ec
Merge pull request #6141 from giuseppe/rootless-fix
abi: do not attempt to setup rootless if euid==0
2020-05-08 17:28:58 +02:00
Giuseppe Scrivano
817f86c734
abi: do not attempt to setup rootless if euid==0
if the process has already euid==0 do not attempt to setup rootless.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2020-05-08 16:25:12 +02:00
OpenShift Merge Robot
bacfae646a
Merge pull request #6121 from vrothberg/v2-auto-update
auto-update
2020-05-08 16:08:11 +02:00
Brent Baude
a4c607cc71 set binding tests to required
some small fix ups for binding tests and then make them required.

update containers-common

V2 bindings tests were failing because of changes introduced in commit
a2ad5bb.

Fix some typos.

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>

in the case where the specgen attribute for Env and Labels are nil, we should should then make the map IF we have labels and envs that need to be added.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-08 09:05:37 -05:00
OpenShift Merge Robot
7c63059287
Merge pull request #6117 from vrothberg/v2-runlabel
container runlabel
2020-05-08 15:17:26 +02:00
Valentin Rothberg
051a2bf437 auto-update
Add the `podman auto-update` command. There have been no tests in v1, so
there are no in v2 either ... for now :)

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-08 11:13:42 +02:00
OpenShift Merge Robot
1d3cdf9a46
Merge pull request #5961 from QiWang19/manifest-remove-push
Manifest remove, push
2020-05-07 19:10:32 +02:00
baude
e9a17da1c5 v2trust set and show
add podman image trust set and show

Signed-off-by: baude <bbaude@redhat.com>
Signed-off-by: bbaude <bbaude@DESKTOP-SH5EG3J.localdomain>
Signed-off-by: Brent Baude <bbaude@redhat.com>
2020-05-07 09:55:52 -05:00
Valentin Rothberg
61828cf480 container runlabel
Implement container runlabel for v2.  Local client only.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-07 16:18:39 +02:00
Valentin Rothberg
f269be3a31 add {generate,play} kube
Add the `podman generate kube` and `podman play kube` command.  The code
has largely been copied from Podman v1 but restructured to not leak the
K8s core API into the (remote) client.

Both commands are added in the same commit to allow for enabling the
tests at the same time.

Move some exports from `cmd/podman/common` to the appropriate places in
the backend to avoid circular dependencies.

Move definitions of label annotations to `libpod/define` and set the
security-opt labels in the frontend to make kube tests pass.

Implement rest endpoints, bindings and the tunnel interface.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-06 17:08:22 +02:00
Qi Wang
5621f5199d Manifest remove, push
Implements podman manifest remove and podman manifest push.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-05-06 10:54:28 -04:00
OpenShift Merge Robot
7885b5cd52
Merge pull request #6063 from QiWang19/manifest-annotate
manifest annotate
2020-05-06 03:41:09 +02:00
Qi Wang
1090d4d5d9 manifest annotate
Signed-off-by: Qi Wang <qiwan@redhat.com>
2020-05-05 15:01:32 -04:00
OpenShift Merge Robot
864aec8bb0
Merge pull request #6081 from baude/v2system
v2 system subcommand
2020-05-05 20:49:17 +02:00
baude
25312bb5b4 v2 system subcommand
add system df, info, load, renumber, and migrate

Refactor for specialized libpod engines

add the ability to prune images, volumes, containers, and pods

Signed-off-by: baude <bbaude@redhat.com>
2020-05-05 12:24:33 -05:00
OpenShift Merge Robot
9db97dbab8
Merge pull request #6080 from baude/v2stats
v2 podman stats
2020-05-05 17:29:56 +02:00
OpenShift Merge Robot
e6235ef8f1
Merge pull request #6076 from vrothberg/rmi-v2.2
image removal: refactor part 2
2020-05-05 17:25:04 +02:00
baude
b5a235df90 v2 podman stats
Signed-off-by: baude <bbaude@redhat.com>
2020-05-05 08:46:51 -05:00
Matthew Heon
7ac3d906b5 Rework port parsing to support --expose and -P
As part of this, make a major change to the type we use to
represent port mappings in SpecGen (from using existing OCICNI
structs to using our own custom one). This struct has the
advantage of supporting ranges, massively reducing traffic over
the wire for Podman commands using them (for example, the
`podman run -p 5000-6000` command will now send only one struct
instead of 1000). This struct also allows us to easily validate
which ports are in use, and which are not, which is necessary for
--expose.

Once we have parsed the ports from the new struct, we can produce
an accurate map including all currently requested ports, and use
that to determine what ports need to be exposed (some requested
exposed ports may already be included in a mapping from --publish
and will be ignored) and what open ports on the host we can map
them to.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-05-04 20:57:27 -04:00
Valentin Rothberg
7f97896c59 image removal: refactor part 2
Continue the refactoring of image removal.  I didn't manage to break all
the following changes into smaller and easier to digest commits due to
time constraints:

 * Return an error slice instead of a single error. Use multierror only
   in the client/frontend.  Reflect that in the types.

 * Use the batch image removal in the client while preserving the more
   rest-idiomatic single-image removal endpoint.

 * Add a new handler for the single-image removal endpoint to make it
   share the same code as the batch endpoint.

 * Expose bindings for the single and batch endpoints, so we can
   properly test them.

 * Add several convenience functions for error handling to
   pkg/errorhandling.

 * Set the correct error type in libpod to set the exit code to 2 when
   one or more containers are using an image.

 * Massage the bindings tests a bit and tackle compilation errors.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2020-05-04 16:01:45 +02:00
OpenShift Merge Robot
bffd3f5134
Merge pull request #6060 from sujil02/systemprune-v2
And system prune feature for v2.
2020-05-01 21:08:50 +02:00