Commit graph

1695 commits

Author SHA1 Message Date
OpenShift Merge Robot
2d829aeb1f
Merge pull request #9284 from rhatdan/annotations
Support annotations from containers.conf
2021-02-09 18:40:36 -05:00
OpenShift Merge Robot
995a60481a
Merge pull request #9283 from vrothberg/fix-8897
generate kube: do not set caps with --privileged
2021-02-09 14:23:15 -05:00
Daniel J Walsh
46385dd609
Restart service when CONTAINERS_CONF changes
Service needs to be restarted in order to read the CONTAINERS_CONF file.
Not resetting this can lead to lots of flakes, since the test will use
whatever the host system has to be set in it's containers.conf.

Fixes: https://github.com/containers/podman/issues/9286

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-02-09 13:18:18 -05:00
Daniel J Walsh
cc846a8cd9
Support annotations from containers.conf
Currently podman does not use the annotations specified in the
containers.conf. This PR fixes this.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-02-09 13:18:18 -05:00
OpenShift Merge Robot
f98605e0e4
Merge pull request #9125 from ashley-cui/secretswiring
Implement Secrets
2021-02-09 17:51:08 +01:00
Valentin Rothberg
48c612cf66 generate kube: support --privileged
Do not play with capabilities for privileged containers where all
capabilities will be set implicitly.

Also, avoid the device check when running privileged since all of /dev/*
will be mounted in any case.

Fixes: #8897
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-02-09 17:40:35 +01:00
Ashley Cui
832a69b0be Implement Secrets
Implement podman secret create, inspect, ls, rm
Implement podman run/create --secret
Secrets are blobs of data that are sensitive.
Currently, the only secret driver supported is filedriver, which means creating a secret stores it in base64 unencrypted in a file.
After creating a secret, a user can use the --secret flag to expose the secret inside the container at /run/secrets/[secretname]
This secret will not be commited to an image on a podman commit

Signed-off-by: Ashley Cui <acui@redhat.com>
2021-02-09 09:13:21 -05:00
Daniel J Walsh
45981ba29a
Bump containers/buildah to v1.19.4
Fix handling of --iidfile to happen on the client side.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-02-08 16:02:20 -05:00
OpenShift Merge Robot
19507d0ffe
Merge pull request #9246 from rhatdan/build
Implement missing arguments for podman build
2021-02-08 14:18:31 -05:00
OpenShift Merge Robot
2bf13219f5
Merge pull request #9266 from vrothberg/fix-6510
make `podman rmi` more robust
2021-02-08 11:35:15 -05:00
OpenShift Merge Robot
c32913d0a3
Merge pull request #9236 from baude/networkprune
add network prune
2021-02-08 09:50:50 -05:00
Valentin Rothberg
feecdf919f make podman rmi more robust
The c/storage library is subject to TOCTOUs as the central container and
image storage may be shared by many instances of many tools.  As shown
in #6510, it's fairly easy to have multiple instances of Podman running
in parallel and yield image-lookup errors when removing them.

The underlying issue is the TOCTOU of removal being split into multiple
stages of first reading the local images and then removing them.  Some
images may already have been removed in between the two stages. To make
image removal more robust, handle errors at stage two when a given image
is not present (anymore) in the storage.

Fixes: #6510
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-02-08 14:58:17 +01:00
Daniel J Walsh
407e86dcd2
Implement missing arguments for podman build
Buildah bud passes a bunch more flags then podman build.

We need to implement hook up all of these flags to get full functionality.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-02-08 08:39:18 -05:00
baude
91ea3fabd6 add network prune
add the ability to prune unused cni networks.  filters are not implemented
but included both compat and podman api endpoints.

Fixes :#8673

Signed-off-by: baude <bbaude@redhat.com>
2021-02-06 07:37:29 -06:00
OpenShift Merge Robot
69ddbde983
Merge pull request #9205 from st1971/issue-8710
play kube selinux label issue
2021-02-05 12:25:55 -05:00
OpenShift Merge Robot
42d4652fed
Merge pull request #9048 from matejvasek/apiv2_wait
Fix Docker APIv2 container wait endpoint
2021-02-05 04:41:41 -05:00
OpenShift Merge Robot
b1bd126cda
Merge pull request #9235 from Luap99/fix-9234
Fix podman network disconnect wrong NetworkStatus number
2021-02-04 16:34:45 -05:00
Steven Taylor
6c713984ef play kube selinux test case
added skip to test case where selinux not enabled

Signed-off-by: Steven Taylor <steven@taylormuff.co.uk>
2021-02-04 19:57:08 +00:00
Paul Holzinger
5c6ab3075e Fix podman network disconnect wrong NetworkStatus number
The allocated `tmpNetworkStatus` must be allocated with the length 0.
Otherwise append would add new elements to the end of the slice and
not at the beginning of the allocated memory.

This caused inspect to fail since the number of networks did not
matched the number of network statuses.

Fixes #9234

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-02-04 19:41:30 +01:00
OpenShift Merge Robot
aaa86c68c0
Merge pull request #9220 from vrothberg/fix-9211
generate kube: handle entrypoint
2021-02-04 13:12:42 -05:00
Valentin Rothberg
c995b54607 generate kube: handle entrypoint
The spec of a Kube Container has a `Command` and `Args`.  While both are
slices, the `Command` is the counterpart of the entrypoint of a libpod
container.  Kube is also happily accepting the arguments to as following
items in the slice but it's cleaner to move those to `Args`.

Fixes: #9211
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
2021-02-04 12:34:35 +01:00
Steven Taylor
96adf0e2a2 play kube selinux test case
fixed typo in the label comparison

Signed-off-by: Steven Taylor <steven@taylormuff.co.uk>
2021-02-03 23:35:14 +00:00
Matej Vasek
2b8d6ca09b Increase timeouts in some tests
Signed-off-by: Matej Vasek <mvasek@redhat.com>
2021-02-03 22:10:27 +01:00
OpenShift Merge Robot
4e1bcf30f3
Merge pull request #9188 from jwhonce/issues/8865
Report StatusConflict on Pod opt partial failures
2021-02-03 15:30:39 -05:00
OpenShift Merge Robot
8f51d325af
Merge pull request #9174 from bitstrings/master
Make slirp MTU configurable (network_cmd_options)
2021-02-03 06:51:23 -05:00
OpenShift Merge Robot
97421651d3
Merge pull request #9204 from baude/macvlanextra
Honor network options for macvlan networks
2021-02-03 05:00:24 -05:00
Steven Taylor
432ee04c55 play kube selinux label test case
test case added to e2e test suite to validate process label being correctly set
on play kube

Signed-off-by: Steven Taylor <steven@taylormuff.co.uk>
2021-02-03 00:27:48 +00:00
OpenShift Merge Robot
aab8a934f5
Merge pull request #9185 from mheon/pod_no_network
Allow pods to use --net=none
2021-02-02 14:57:37 -05:00
Jhon Honce
7e4d696d94 Report StatusConflict on Pod opt partial failures
- When one or more containers in the Pod reports an error on an operation
report StatusConflict and report the error(s)

- jsoniter type encoding used to marshal error as string using error.Error()

- Update test framework to allow setting any flag when creating pods

- Fix test_resize() result check

Fixes #8865

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2021-02-02 12:44:08 -07:00
baude
bd0e22ed14 Honor network options for macvlan networks
when creating a macvlan network, we should honor gateway, subnet, and
mtu as provided by the user.

Fixes: #9167

Signed-off-by: baude <bbaude@redhat.com>
2021-02-02 13:24:14 -06:00
bitstrings
0959196807 Make slirp MTU configurable (network_cmd_options)
The mtu default value is currently forced to 65520.
This let the user control it using the config key network_cmd_options,
i.e.: network_cmd_options=["mtu=9000"]

Signed-off-by: bitstrings <pino.silvaggio@gmail.com>
2021-02-02 13:50:26 -05:00
Matthew Heon
931ea939ac Allow pods to use --net=none
We need an extra field in the pod infra container config. We may
want to reevaluate that struct at some point, as storing network
modes as bools will rapidly become unsustainable, but that's a
discussion for another time. Otherwise, straightforward plumbing.

Fixes #9165

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2021-02-02 10:35:23 -05:00
baude
e11d8f15e8 add macvlan as a supported network driver
instead of using the --macvlan to indicate that you want to make a
macvlan network, podman network create now honors the driver name of
*macvlan*.  Any options to macvlan, like the parent device, should be
specified as a -o option.  For example, -o parent=eth0.

the --macvlan option was marked as deprecated in the man page but is
still supported for the duration of 3.0.

Signed-off-by: baude <bbaude@redhat.com>
2021-02-01 14:42:38 -06:00
OpenShift Merge Robot
20183349fd
Merge pull request #9168 from Luap99/fix-pod-create-network-parsing
Fix --network parsing for podman pod create
2021-02-01 08:48:54 -05:00
OpenShift Merge Robot
81a3ba36ae
Merge pull request #9051 from rhatdan/rm
Switch podman stop/kill/wait handlers to use abi
2021-02-01 08:47:54 -05:00
OpenShift Merge Robot
15e5a5c32b
Merge pull request #9151 from rhatdan/mount
Docker ignores mount flags that begin with constency
2021-02-01 05:10:55 -05:00
Paul Holzinger
3cfd4ce45e Fix --network parsing for podman pod create
The `--network` flag is parsed differently for `podman pod create`.
This causes confusion and problems for users. The extra parsing
logic ignored unsupported network options such as `none`,
`container:...` and `ns:...` and instead interpreted them as cni
network names.

Tests are added to ensure the correct errors are shown.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-31 16:01:02 +01:00
Daniel J Walsh
4a6d042c28
Docker ignores mount flags that begin with constency
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1915332

```
According to the Docker docs, the consistency option should be ignored on Linux.

the possible values are 'cached', 'delegated', and 'consistent', but they should be ignored equally.

This is a widely used option in scripts run by developer machines, as this makes file I/O less horribly slow on MacOS.
```

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-30 06:50:18 -05:00
Milivoje Legenovic
cdbbc6120b podman generate kube ignores --network=host
Signed-off-by: Milivoje Legenovic <m.legenovic@gmail.com>
2021-01-30 09:08:36 +01:00
OpenShift Merge Robot
f3a7bc1a7b
Merge pull request #9150 from baude/playkubedns
Honor custom DNS in play|generate kube
2021-01-29 14:15:21 -05:00
Daniel J Walsh
073f76c132
Switch podman stop/kill/wait handlers to use abi
Change API Handlers to use the same functions that the
local podman uses.

At the same time:

 implement remote API for --all and --ignore flags for podman stop
 implement remote API for --all flags for podman stop

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-29 14:04:44 -05:00
OpenShift Merge Robot
4ee66c2c2e
Merge pull request #9149 from rhatdan/docs
Podman-remote push can support --format
2021-01-29 12:05:20 -05:00
OpenShift Merge Robot
0fe3d43ef1
Merge pull request #9133 from rhatdan/pull1
Cleanup bindings for image pull
2021-01-29 11:47:20 -05:00
baude
ca0dd76bf3 Honor custom DNS in play|generate kube
when creating kubernetes yaml from containers and pods, we should honor
any custom dns settings the user provided. in the case of generate kube,
these would be provided by --dns, --dns-search, and --dns-opt. if
multiple containers are involved in the generate, the options will be
cumulative and unique with the exception of dns-opt.

when replaying a kube file that has kubernetes dns information, we now
also add that information to the pod creation.

the options for dnspolicy is not enabled as there seemed to be no direct
correlation between kubernetes and podman.

Fixes: #9132

Signed-off-by: baude <bbaude@redhat.com>
2021-01-29 08:49:45 -06:00
Daniel J Walsh
d7c356552e
Podman-remote push can support --format
Fix man page to document podman push --format fully.

Also found that push was not handling the tlsverify so fixed this.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-29 08:48:35 -05:00
OpenShift Merge Robot
a4c255a939
Merge pull request #9115 from rhatdan/pull
Switch podman image push handlers to use abi
2021-01-28 14:37:30 -05:00
Daniel J Walsh
59076888d9
Cleanup bindings for image pull
Remove bindings that are not handled over the API.

Leaving this one to not use image pull, since this would
break progress handling.  We should revisit this in the
future.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2021-01-27 16:11:35 -05:00
Paul Holzinger
1fac43654c Add support for rootless network-aliases
Make sure we pass the network aliases as capability args to the
cnitool in the rootless-cni-infra container. Also update the
dnsname plugin in the cni-infra container.

Fixes #8567

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-27 20:58:03 +01:00
Paul Holzinger
c717b3caca Allow static ip and mac with rootless cni network
Make sure we pass the ip and mac address as CNI_ARGS to
the cnitool which is executed in the rootless-cni-infra
container.

Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
2021-01-27 17:35:54 +01:00
OpenShift Merge Robot
2ff4da9b59
Merge pull request #9124 from vrothberg/fix-8358
e2e tests: synchronize test results
2021-01-27 10:39:30 -05:00