Commit Graph

4301 Commits

Author SHA1 Message Date
Vladimir Kochnev
e41d4a2471 Add missing tests for manifests API
Also:
 - It fixes a regression in parsing "images" parameter in
   ManifestAddV3 handler.
 - Refactors 12-imagesMore.at to use start_registry helper.
 - Removes some unsafe "exit 1" statements which skip clean up.

Signed-off-by: Vladimir Kochnev <hashtable@yandex.ru>
2022-06-07 14:20:46 +03:00
OpenShift Merge Robot
3f8a7547ca Merge pull request #14474 from flouthoc/non-volatile-overlay-volume
overlay-volumes: add support for non-volatile `upperdir`,`workdir` for `overlay` volumes
2022-06-06 15:11:11 -04:00
Jake Correnti
8533ea0004 Privileged containers can now restart if the host devices change
If a privileged container is running, stops, and the devices on the host
change, such as a USB device is unplugged, then a container would no
longer start. Previously, the devices from the host were only being
added to the container once: when the container was created. Now, this
happens every time the container starts.

I did this by adding a boolean to the container config that indicates
whether to mount all of the devices or not, which can be set via an option.

During spec generation, if the `MountAllDevices` option is set in the
container config, all host devices are added to the container.

Additionally, a couple of functions from `pkg/specgen/generate/config_linux.go`
were moved into `pkg/util/utils_linux.go` as they were needed in
multiple packages.

Closes #13899

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-06-06 14:14:22 -04:00
OpenShift Merge Robot
b2ebb91656 Merge pull request #14485 from ashley-cui/flake
Fix secret-verify-leak flake: set build context to subdir
2022-06-06 10:59:19 -04:00
Aditya R
aadae49ad3 overlay-volumes: add support for non-volatile upperdir,workdir for anonymous volumes
Similar feature was added for named overlay volumes here: https://github.com/containers/podman/pull/12712
Following PR just mimics similar feature for anonymous volumes.

Often users want their anonymous overlayed volumes to be `non-volatile` in nature
that means that same `upper` dir can be re-used by one or more
containers but overall of nature of volumes still have to be overlay
so work done is still on a overlay not on the actual volume.

Following PR adds support for more advanced options i.e custom `workdir`
and `upperdir` for overlayed volumes. So that users can re-use `workdir`
and `upperdir` across new containers as well.

Usage

```console
podman run -it -v /some/path:/data:O,upperdir=/path/persistant/upper,workdir=/path/persistant/work alpine sh
```

Signed-off-by: Aditya R <arajan@redhat.com>
2022-06-06 18:58:42 +05:30
OpenShift Merge Robot
48a4e6d690 Merge pull request #14453 from flouthoc/support-additional-build-context-on-remote
remote: enable support for additional `--build-context` on macOS and remote
2022-06-06 14:28:22 +02:00
Cosmin Tupangiu
67ea5fdad7 Cleanup the leftovers used with ginkgo focus option
Signed-off-by: Cosmin Tupangiu <cosmin@redhat.com>
2022-06-06 11:36:28 +02:00
OpenShift Merge Robot
8c0e033f27 Merge pull request #14477 from Luap99/partial-logs
podman logs k8s-file: do not reassemble partial log lines
2022-06-03 18:06:58 -04:00
Aditya R
22e442ee25 tests: buildah-bud fix reason for skip
Signed-off-by: Aditya R <arajan@redhat.com>
2022-06-03 23:47:09 +05:30
Ashley Cui
9de092ec00 Fix secret-verify-leak flake: set build context to subdir
Setting the build context to a dedicated subdir makes sure that the test does not
flake when running in parallel, as the test is isolated from other tests
that may dump secrets in a higher level context dir.

This should have been done in
https://github.com/containers/podman/pull/13457, as this makes that PR
actually work.

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-06-03 14:13:18 -04:00
Paul Holzinger
2414586662 podman logs k8s-file: do not reassemble partial log lines
The backend should not convert partial lines to full log lines. While
this works for most cases it cannot work when the last line is partial
since it will just be lost. The frontend logic can already display
partial lines correctly. The journald driver also works correctly since
it does not such conversion.

Fixes #14458

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-03 15:01:23 +02:00
Valentin Rothberg
2b0cb30026 test/e2e/save_test.go: fix flake
Save at most three images and sort them by size.  The test started to
flake as _all_ local images were saved which is not neccessary.

Fixes: #14468
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-06-03 14:22:25 +02:00
OpenShift Merge Robot
6edbf3baaa Merge pull request #14461 from cdoern/infra
fix pod network handling with a host network
2022-06-02 21:28:26 -04:00
OpenShift Merge Robot
5e15a26e0e Merge pull request #14460 from cipherboy/align-docker-podman-load-output
Align docker load and podman load output
2022-06-02 21:24:26 -04:00
Alexander Scheel
1b6505d74b Update test output expectation
Signed-off-by: Alexander Scheel <alex.scheel@hashicorp.com>
2022-06-02 16:05:05 -04:00
cdoern
831d6534fb fix pod network handling with a host network
the function `GetDefaultNamespaceMode` for pods checks if we are sharing each namespace
and if not, returns the default which in the case of a network is slirp.

add a switch case for explicitly checking if the pod's network mode is host
and if so, return specgen.Host for the container

resolves #13763

Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
Signed-off-by: cdoern <cdoern@redhat.com>
2022-06-02 14:16:28 -04:00
OpenShift Merge Robot
be527a358a Merge pull request #14457 from Luap99/completion4
shell completion for paths inside the image/container
2022-06-02 14:02:11 -04:00
Paul Holzinger
f2bbbd20da shell completion for paths inside the image/container
Add shell completion for paths inside the container or image. Currently
podman run IMAGE [TAB] only uses the default shell completion which
suggests paths on the host. This is fine for some cases but often the
user wants a path which only exists in the image/container.

This commits adds support for that. Both podman create/run can now
complete the paths from the image, podman cp ctr:... now completes paths
from the actual container.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-02 17:23:22 +02:00
OpenShift Merge Robot
13cdf862e6 Merge pull request #14301 from rhatdan/volume
Support setting image_volume_mode in containers.conf
2022-06-02 10:16:28 -04:00
Aditya R
69e44bbcc7 bindings: add manifest should follow es_model while marshalling OSVersion and OSFeatures
It seems API needs json names for OSVersion and OSFeatures in es_model
ref: https://github.com/containers/podman/blob/main/pkg/domain/entities/manifest.go#L42

So at bindings end ensure that we honor es_model naming convention when
we perform marshalling otherwise API will ignore these fields

Signed-off-by: Aditya R <arajan@redhat.com>
2022-06-02 18:06:27 +05:30
Aditya R
44f11ec2c6 podman-remote: enable support for additional build-context on macOS, remote
Feature of additional build context added here https://github.com/containers/buildah/pull/3978
already exists on `podman` following PR just enables this feature of
`podman-remote` and `podman on macOS` setups.

Signed-off-by: Aditya R <arajan@redhat.com>
2022-06-02 17:38:33 +05:30
OpenShift Merge Robot
e4e100638d Merge pull request #14344 from cdoern/podCreate
podman pod create --uidmap patch
2022-06-02 04:33:03 -04:00
OpenShift Merge Robot
a208bfaa52 Merge pull request #14421 from Luap99/stats
podman stats: work with network connect/disconnect
2022-06-02 04:26:04 -04:00
cdoern
f728b7b5a7 podman pod create --uidmap patch
podmans remote API does not marshal infra's spec due to
the fact that if it did, all of those options would be available to
the users on the command line. This means we need to manually map "backwards"
some container spec items -> pod spec items before calling PodCreate, this was
one of them that was forgotten

resolves #14233

Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
Signed-off-by: cdoern <cdoern@redhat.com>
2022-06-01 12:45:00 -04:00
Paul Holzinger
78d1f5d7d6 fix "tail 800 lines: journald" flake
The test calls podman run -d followed by podman logs. There is no
guarantee the the container or conmon has written all its output.
Adding an extra podman wait should fix this.

Do not remove the -d to not print 1000 unnecessary lines in the logs.

Fixes #14362

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-01 16:49:10 +02:00
Paul Holzinger
205c8c071e fix podman container restore without CreateNetNS
When a container does not use the default podman netns, for example
--network none or --network ns:/path a restore would fail because the
specgen check validates that c.config.StaticMAC is nil but the
unmarshaller sets it to an empty slice.

While we could make the check use len() > 0 I feel like it is more
common to check with != nil for ip and mac addresses.
Adding omitempty tag makes the json marshal/unmarshal work correctly.
This should not cause any issues.

Fixes #14389

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-31 16:49:40 +02:00
Paul Holzinger
16e8b2f32e podman stats: work with network connect/disconnect
Hardcoding the interface name is a bad idea. We have no control over the
actual interface name since the user can change it.

The correct thing is to read them from the network status. Since the
contianer can have more than one interface we have to add the RX/TX
values. The other values are currently not used.

For podman 5.0 we should change it so that the API can return the
statistics per interface and the client should sum the TX/RX for the
command output. This is what docker is doing.

Fixes #13824

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-31 15:31:07 +02:00
OpenShift Merge Robot
dc67e6a182 Merge pull request #14419 from Luap99/volume-import
podman volume export/import: give better error
2022-05-31 09:27:29 -04:00
Paul Holzinger
ec576a5491 podman volume export/import: give better error
When the volume does not exist we should output an error stating so and
not some generic one.

Fixes #14411

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-30 18:10:28 +02:00
Niall Crowe
7e69e2b532 Podman no-new-privileges format
In docker, the format of no-new-privileges is
"no-new-privileges:true". However, for Podman
all that's required is "no-new-privileges", leading to issues
when attempting to use features desgined for docker in podman.
Adding support for the ":" format to be used along with the "="
format, depedning on which one is entered by the user.

fixes #14133
Signed-off-by: Niall Crowe <nicrowe@redhat.com>
2022-05-30 15:06:42 +01:00
Daniel J Walsh
fb163976f4 Support setting image_volume_mode in containers.conf
Fixes: https://github.com/containers/podman/issues/14230

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-26 14:16:26 -04:00
Aditya R
66a56ce05a vendor: bump buildah to v1.26.1-0.20220524184833-5500333c2e06
Bump buildah to v1.26.1-0.20220524184833-5500333c2e06

Signed-off-by: Aditya R <arajan@redhat.com>
2022-05-26 21:01:31 +05:30
Aditya R
6124b51993 build: allow using cache explicitly with --squash-all using --layers
Buildah already supports using `--layers` with `--squash` after https://github.com/containers/buildah/pull/3674
if user wants to do so hence podman must honor similar configuration
in `--squash-all` behaviour if user wants to using cache.

PS: We cannot alter behaviour of `podman build --squash` for
docker-compat reasons hence this feature can be easily supported by
`--squash-all`.

Closes: https://github.com/containers/buildah/issues/4011

Signed-off-by: Aditya R <arajan@redhat.com>
2022-05-26 21:01:18 +05:30
Matthew Heon
9fcfea7643 First batch of resolutions to FIXMEs
Most of these are no longer relevant, just drop the comments.

Most notable change: allow `podman kill` on paused containers.
Works just fine when I test it.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-05-25 13:28:04 -04:00
OpenShift Merge Robot
e26ad50669 Merge pull request #14361 from Luap99/netflake
fix f35 integration test network flake
2022-05-25 11:38:57 -04:00
OpenShift Merge Robot
dbd4ee04b8 Merge pull request #14358 from vrothberg/todo-part-2
Todo part 2
2022-05-25 10:42:23 -04:00
Paul Holzinger
cb76d15230 fix f35 integration test network flake
I am not 100% sure if this is actually causing the problem but I was
able to reproduce locally and this change fixed it there. Without the `-n`
option iptables tries to reverse lookup the ips to domain names. This is
extremely slow for unknown reasons. Given the large amount of iptables
entries due parallel test runs it will not succeed in the default 90 sec
timeout.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-25 15:46:15 +02:00
OpenShift Merge Robot
800a367d73 Merge pull request #14333 from rhatdan/pod
Allow podman pod create --share +pid
2022-05-25 08:57:15 -04:00
Valentin Rothberg
c3677f5151 test/system/250-systemd.bats: clean up outdated TODO
`podman auto-update` is now properly exercised in the system tests, so
we can safely remove the outdated TODO.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-25 13:01:14 +02:00
OpenShift Merge Robot
b13184dfb4 Merge pull request #14334 from rhatdan/pod1
Allow podman pod create to accept name argument
2022-05-24 22:12:59 -04:00
OpenShift Merge Robot
6f2a40d42e Merge pull request #14346 from edsantiago/helpmsg_tests
help-message system test: catch more cases
2022-05-24 19:56:54 -04:00
Daniel J Walsh
2ce4755767 Allow podman pod create --share +pid
Fixes: https://github.com/containers/podman/issues/13422

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-24 15:58:31 -04:00
OpenShift Merge Robot
c6152f40a0 Merge pull request #14319 from flouthoc/suppress-aux-on-quiet
compat, build: suppress `step` errors when `quiet=1` is set
2022-05-24 13:28:29 -04:00
Daniel J Walsh
df394b5218 Allow podman pod create to accept name argument
I am constantly attempting to add the podname to the last
argument to podman pod create. Allowing this makes it match
podman volume create and podman network create.

It does not match podman container create, since podman container create
arguments specify the arguments to run with the container.

Still need to support the --name option for backwards compatibility.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-24 13:17:02 -04:00
OpenShift Merge Robot
2dc4f752c6 Merge pull request #14341 from vrothberg/todo-part-1
TODO's and FIXME's [PART 1]
2022-05-24 12:50:59 -04:00
Ed Santiago
8de3e91024 help-message system test: catch more cases
- Look for and prevent lower-case arg descriptions:
     podman cmd [arg]

 - Look for and prevent optional-mandatory misordering:
     podman cmd [ARG] ARG

 - Tighter whitespace checks (and fix podman pod ps)

 - simplify a no-longer-necessary mess! #8635 fixed the
   horrible "CONTAINER | IMAGE" strings (with spaces),
   so there's no longer a need to special-case those.
   The one-extra-arg check is now much cleaner.

Minor refactoring.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-05-24 09:21:11 -06:00
Valentin Rothberg
b3e2324f58 test/e2e/search_test.go: re-enable registry.redhat.io test
The search endpoint is working again.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-24 16:07:39 +02:00
Valentin Rothberg
5268314e53 podman image mount: print pretty table
Make sure that `podman image mount` prints a pretty table unless there
is only argument passed and without a custom format.  Fixing a TODO item
brought me to the specific code location and revealed the fart in the
logic.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-24 16:07:39 +02:00
Valentin Rothberg
f5450b1e82 system tests: fix flake waiting for container to run
I have seen some system tests flake waiting for a container to
transition into a specific running state.  My theory is that
the waiting time was not sufficient on nodes under high load.
Hence, increase the waiting time.  Also replace the break with
a return to spare some cycles to redundantly compare with the
already checked state.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-24 13:20:20 +02:00
OpenShift Merge Robot
737b100c5e Merge pull request #14294 from vrothberg/fix-14291
fix compat image resolution
2022-05-24 03:37:32 -04:00