Commit graph

4133 commits

Author SHA1 Message Date
OpenShift Merge Robot
5a209b3d76
Merge pull request #10561 from vrothberg/fix-remote-events-label
remote events: support labels
2021-06-07 00:05:42 +02:00
OpenShift Merge Robot
9e069cf7d9
Merge pull request #10568 from jwhonce/issues/10562
[CI:DOCS] Document which CNI fields are encoded
2021-06-06 22:45:41 +02:00
OpenShift Merge Robot
1e006a58cc
Merge pull request #10549 from Luap99/fix-9859
remote: always send resize before the container starts
2021-06-05 16:45:20 +02:00
Jhon Honce
8f89bc4e07 [CI:DOCS] Document which CNI fields are encoded
The CNI configuration fields named Bytes are typed
[]byte which the GO JSON encoded automatically Base64 encodes.

Note: Future major versions of Podman will refactor the networking
endpoints to encapsulate/abstract the CNI structures which will
allow better documenation and encoding.

Fixes #10562

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-06-04 10:59:32 -07:00
OpenShift Merge Robot
cdf26a3d56
Merge pull request #10546 from boaz0/closes_8645
Add CORS support
2021-06-04 18:13:21 +02:00
OpenShift Merge Robot
c361a3886e
Merge pull request #10563 from Luap99/fix-10494
[CI:DOCS] fix incorrect network remove api doc
2021-06-04 18:06:22 +02:00
Paul Holzinger
1f73374acd remote: always send resize before the container starts
There is race condition in the remote client attach logic. Because the
resize api call was handled in an extra goroutine the container was
started before the resize call happend. To fix this we have to call
resize in the same goroutine as attach. When the first resize is done
start a goroutine to listen on SIGWINCH in the background and resize
again if the signal is received.

Fixes #9859

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-06-04 16:55:48 +02:00
Valentin Rothberg
9c50485440 remote events: support labels
Certain event meta data was lost when converting the remote events to
libpod events and vice versa.  Enable the skipped system tests for
remote.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-06-04 16:14:09 +02:00
cdoern
ce01b4f095 made requested changes, fixed api tests
Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2021-06-04 09:50:42 -04:00
Boaz Shuster
2810c478a7 Add CORS support
[NO TESTS NEEDED]

Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2021-06-04 16:14:52 +03:00
Paul Holzinger
df7c3a7039 [CI:DOCS] fix incorrect network remove api doc
The endpoint returns an array and not a single entry.

Fixes #10494

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2021-06-04 14:22:52 +02:00
Adrian Reber
1ac9198d75
Allow changing of port forward rules on restore
Restored containers, until now, had the same port mappings as the
original started container. This commit adds the parameter '--publish'
to 'podman container restore' with the same semantic as during
create/run.

With this change it is possible to create a copy from a container with a
'--publish' rule and replace the original '--publish' setting with a new
one.

 # podman run -p 2345:8080 container
 # podman container checkpoint -l --export=dump.tar
 # podman container restore -p 5432:8080 --import=dump.tar

The restored container will now listen on localhost:5432 instead of
localhost:2345 as the original created container.

Signed-off-by: Adrian Reber <areber@redhat.com>
2021-06-04 13:29:02 +02:00
Valentin Rothberg
86610c7852 remote events: fix --stream=false
Fix a bug in remote events where only one event would be sent if when
streaming is turned off.  The source of the bug was that the handler
attempted to implement the streaming logic and did it wrong.  The fix is
rather simple by removing this logic from the handler and let the events
backend handle streaming.

Fixes: #10529
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-06-04 12:51:43 +02:00
Valentin Rothberg
9ac5267598 systemd/generate: change type to notify
Change the type of units generated with --new from "forking" to
"notify".  This brings Podman closer to systemd and opens up
Podman to a number of use cases (see #5572).

Units generated without --new remain with `type=forking`.  I
experimented a bit with adding a `--sdnotify` flag to `podman start` but
it doesn't really work well since we're competing with the default
sdnotify mode set during container creation.

Fixes: #5572
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-06-04 10:17:25 +02:00
OpenShift Merge Robot
1f3b13759f
Merge pull request #10517 from cdoern/master
API one-shot query implementation/handling
2021-06-01 19:49:15 -04:00
OpenShift Merge Robot
24b364a230
Merge pull request #10486 from vrothberg/tag-digest-support
support tag@digest notation
2021-06-01 22:38:03 +02:00
OpenShift Merge Robot
ce2b331fef
Merge pull request #10519 from matejvasek/use-req-ctx
Use request context instead of background
2021-06-01 22:37:02 +02:00
cdoern
2cc4535e1f added tests in python rest api
Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2021-06-01 14:54:02 -04:00
OpenShift Merge Robot
cbffdddce6
Merge pull request #10488 from baude/machinehostnetwork
Enable port forwarding on host
2021-06-01 19:41:46 +02:00
OpenShift Merge Robot
7a52440a6d
Merge pull request #10508 from matejvasek/fix-from-img
Better error handing for images/create compat api
2021-06-01 19:10:47 +02:00
OpenShift Merge Robot
19cd46cdc2
Merge pull request #10510 from matejvasek/improve-creat-from-img
Use request context instead of background context
2021-06-01 19:08:49 +02:00
Brent Baude
7ef3981abe Enable port forwarding on host
Using the gvproxy application on the host, we can now port forward from
the machine vm on the host.  It requires that 'gvproxy' be installed in
an executable location.  gvproxy can be found in the
containers/gvisor-tap-vsock github repo.

[NO TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-06-01 10:13:18 -05:00
Matej Vasek
ad182976b6 Use request context instead of background
This prevents goroutine leak:
If background context were used then push operation would continue even
if client aborted request by closing connection.

[NO TESTS NEEDED]

Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-06-01 15:25:20 +02:00
zhangguanzhang
1daaf34d7b [NO TESTS NEEDED] API list networks should return [] when used with no networks
Signed-off-by: zhangguanzhang <zhangguanzhang@qq.com>
2021-06-01 20:58:48 +08:00
Matej Vasek
ef8ba99ff6 Use request context instead of background context
This fixes a goroutine leak. Previously if request was cancelled the
image pulling goroutine kept running regardless.

[NO TESTS NEEDED]

Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-06-01 11:54:31 +02:00
Matej Vasek
3330f98762 Better error handing for images/create compat api
If server cannot resolve short name due to enforcing policy send
non-2xx status code.

[NO TESTS NEEDED]

Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-05-31 15:30:56 +02:00
Valentin Rothberg
fb4a0c572e support tag@digest notation
Vendor in the latest HEAd of containers/common to implicitly support the
tag@digest notation for images.  To remain compatible with Docker, the
tag will be stripped off the image reference and is entirely ignored.

Fixes: #6721
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-05-31 14:38:43 +02:00
Valentin Rothberg
5307218419 generate systemd: make mounts portable
Commit 748826fc88 fixed a bug where slow mounting of the runroot was
causing issues when the units are started at boot.  The fix was to add
the container's runroot to the required mounts; the graph root has been
added as well.

Hard-coding the run- and graphroot to the required mounts, however,
breaks the portability of units generated with --now.  Those units are
intended to be running on any machine as, theoreticaly, any user.

Make the mounts portable by using the `%t` macro for the run root.
Since the graphroot's location varies across root and ordinary users,
drop it from the list of required mounts.  The graphroot was not causing
issues.

Fixes: #10493
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-05-31 11:31:27 +02:00
flouthoc
2addc0f90d rootless: fix SIGSEGV ,make LISTEN_FDNAMES optional [Closes #10435].
[NO TESTS NEEDED]

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-05-29 15:16:26 +05:30
OpenShift Merge Robot
3d8f37120d
Merge pull request #10383 from rhatdan/kube
Handle image user and exposed ports in podman play kube
2021-05-27 21:18:05 +02:00
Brent Baude
8e5388e41d Add options to podman machine ssh
Add options to the podman machine ssh command that ignore
hostkeychecking and hosts file

-o 'UserKnownHostsFile /dev/null' -o 'StrictHostKeyChecking no

[NO TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2021-05-27 09:10:39 -05:00
Daniel J Walsh
de293c9802
Handle image user and exposed ports in podman play kube
Currently if a user runs an image with a user specified or
exposed ports with podman play kube, the fields are ignored.

Fixed: https://github.com/containers/podman/issues/9609

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-26 16:39:04 -04:00
Matthew Heon
533d88b656 Add the option of Rootless CNI networking by default
When the containers.conf field "NetNS" is set to "Bridge" and the
"RootlessNetworking" field is set to "cni", Podman will now
handle rootless in the same way it does root - all containers
will be joined to a default CNI network, instead of exclusively
using slirp4netns.

If no CNI default network config is present for the user, one
will be auto-generated (this also works for root, but it won't be
nearly as common there since the package should already ship a
config).

I eventually hope to remove the "NetNS=Bridge" bit from
containers.conf, but let's get something in for Brent to work
with.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2021-05-26 15:03:30 -04:00
Daniel J Walsh
afe33573d7
Handle hard links in different directories
Fixes: https://github.com/containers/podman/issues/10444

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-24 15:44:56 -04:00
OpenShift Merge Robot
4d6b66a452
Merge pull request #10387 from flouthoc/cgroupv1-v2-info
Podman info add support for status of standard available cgroup controllers
2021-05-24 17:15:28 +02:00
flouthoc
2f5552c32d Podman info add support for status of cgroup controllers
Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2021-05-24 16:55:23 +05:30
Daniel J Walsh
f22791aec7
Handle hard links in remote builds
Fixes: https://github.com/containers/podman/issues/9893

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-22 05:27:03 -04:00
OpenShift Merge Robot
490915c68e
Merge pull request #10365 from jwhonce/issues/9578
Match swagger to "as built" output
2021-05-21 20:10:21 +02:00
OpenShift Merge Robot
7f4afe45ab
Merge pull request #10427 from rhatdan/errors
Drop container does not exist on removal to debugf
2021-05-21 19:39:21 +02:00
Jhon Honce
8bf852d5f0 Match swagger to "as built" output
* Remove all Types no longer referenced, they were never used

A future API breaking version of Podman API, may restore these Types
and push formatting into presentation layer vs. server.

Fixes #9578

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-05-21 09:50:58 -07:00
OpenShift Merge Robot
6a6ef402c3
Merge pull request #10400 from rhatdan/root
Clear the storage-options from the graphdriver if users specifies --root
2021-05-21 17:40:24 +02:00
Daniel J Walsh
6ca721cccd
Drop container does not exist on removal to debugf
We have race conditions where a container can be removed
by two different processes when running podman --remove rm.

It can be cleaned up in the API or by the conmon executing
podman container cleanup.

When we fail to remove a container that does not exists we should
not be printing errors or warnings, we should just debug the fact.

[NO TESTS NEEDED] Since this is a race condition it is difficult to
test.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-21 09:37:53 -04:00
Jhon Honce
7bcfae44b9 Downgrade API service routing table logging
[NO TESTS NEEDED]

* Log the routing table output at Trace vs. Debug level. Reduce noise
  in debugging output.
* Tweak SDNotify message to report Warn when it fails. Previously
  failures were silent.

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-05-20 09:10:45 -07:00
OpenShift Merge Robot
49a99be5b6
Merge pull request #10377 from vrothberg/test-common
update c/common
2021-05-20 06:01:20 -04:00
Valentin Rothberg
898a8ad285 update c/common
Update containers common to the latest HEAD.  Some bug fixes in libimage
forced us to have a clearer separation between ordinary images and
manifest lists.  Hence, when looking up manifest lists without recursing
into any of their instances, we need to use `LookupManifestList()`.

Also account for some other changes in c/common (e.g., the changed order
in the security labels).

Further vendor the latest HEAD from Buildah which is required to get the
bud tests to pass.

Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-05-20 10:21:27 +02:00
Daniel J Walsh
2b89b24146
Add support for podman manifest rm command
This is mainly to match command line of Docker.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-19 17:32:02 -04:00
Daniel J Walsh
55f00bac02
Clear the storage-options from the graphdriver if users specifies --root
Fixes: https://github.com/containers/podman/issues/10393

Currently if a user specifies a --root flag to override the location of
the container storage, we still enforce the storage-opts from
storage.conf. This causes issues with people trying to intereact with
the additional stores feature, and then forces them to use the obscure
--storage-opt="" option. I belive this should be the default and we
already do this when the user specifies the --storage-driver option.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-05-19 15:35:59 -04:00
OpenShift Merge Robot
18efc5a3a7
Merge pull request #10371 from matejvasek/fix-wait-compat
fix: response of containers wait endpoint
2021-05-19 07:52:58 -04:00
OpenShift Merge Robot
959d6a0c40
Merge pull request #10369 from jmguzik/network-http-docs-fixes
Fix formatting and indentation in network http api docs
2021-05-18 16:56:57 -04:00
Matej Vasek
92e858914d fix: response body of containers wait endpoint
The `Error` part of response must be nil (or omitted) if no error occurred.
Before this commit a zero value for the struct was returned.

Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-05-18 20:52:09 +02:00