Commit graph

4143 commits

Author SHA1 Message Date
OpenShift Merge Robot
874ca426eb
Merge pull request #14549 from Luap99/compat-create
compat api: fix regressions from "Swagger refactor/cleanup"
2022-06-09 13:27:11 -04:00
OpenShift Merge Robot
852a406851
Merge pull request #14542 from hshiina/restore-filelock
Pass '--file-locks' to OCI runtime at restoring
2022-06-09 11:48:52 -04:00
Paul Holzinger
5614c29ce1
compat api: fix regressions from "Swagger refactor/cleanup"
For some reason commit 5b79cf15a0 moved the container create options
parsing from cmd/podman/common to pkg/api/handlers. However it did not
remove the old code. Unfortunately  it moved the code from an outdated
version and did not update it before this commit was merged.
Therefore a couple of regressions were introduced. I manually compared
both versions and found three missing bugfixes.

I fixed the network test again that was changed in bce97a3b5d. We
want bridge as default even as rootless. Sine the test is not run as
rootless in CI the regression was not caught.
Also the no hosts test never worked since it was missing the import
check if the hosts file exists.

I don't think we can check for the volume parsing change since this only
works on windows/wsl.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-09 16:00:46 +02:00
Hironori Shiina
eed0e66710 Pass '--file-locks' to OCI runtime at restoring
`podman container restore --file-locks` does not restore file locks
because this option is not passed to OCI runtime. This patch fixes this
issue.

Signed-off-by: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
2022-06-09 09:49:53 -04:00
OpenShift Merge Robot
576c739e5f
Merge pull request #14484 from marshall-lee/test/manifest-push
Add missing tests for manifests API
2022-06-08 14:29:39 -04:00
OpenShift Merge Robot
b4c981893d
Merge pull request #14220 from Luap99/resolvconf
use resolvconf package from c/common/libnetwork
2022-06-07 18:00:34 -04:00
OpenShift Merge Robot
fef40e2ad3
Merge pull request #14483 from jakecorrenti/restart-privelaged-containers-after-host-device-change
Privileged containers can now restart if the host devices change
2022-06-07 15:48:36 -04:00
cdoern
ed1e4f94fb Infra Inheritance patch
infra was overriding options that it should be appending rather than resetting.
fix this by appending the given container's spec to the compatible options before marshaling/unmarshaling

resolves #14454

Signed-off-by: cdoern <cdoern@redhat.com>
2022-06-07 11:42:16 -04:00
Paul Holzinger
90d80cf81e
use resolvconf package from c/common/libnetwork
Podman and Buildah should use the same code the generate the resolv.conf
file. This mostly moved the podman code into c/common and created a
better API for it so buildah can use it as well.

[NO NEW TESTS NEEDED] All existing tests should continue to pass.

Fixes #13599 (There is no way to test this in CI without breaking the
hosts resolv.conf)

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-07 15:17:04 +02:00
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
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
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
OpenShift Merge Robot
81f228b20a
Merge pull request #14466 from mheon/fix_9075
Improve robustness of `podman system reset`
2022-06-03 17:54:57 -04:00
Matthew Heon
259c79963f Improve robustness of podman system reset
Firstly, reset is now managed by the runtime itself as a part of
initialization. This ensures that it can be used even with
runtimes that would otherwise fail to be created - most notably,
when the user has changed a core path
(runroot/root/tmpdir/staticdir).

Secondly, we now attempt a best-effort removal even if the store
completely fails to be configured.

Third, we now hold the alive lock for the entire reset operation.
This ensures that no other Podman process can start while we are
running a system reset, and removes any possibility of a race
where a user tries to create containers or pull images while we
are trying to perform a reset.

[NO NEW TESTS NEEDED] we do not test reset last I checked.

Fixes #9075

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-06-03 12:54:08 -04:00
Niall Crowe
3c9b75c217 Using logDriver instead of query.LogDriver for podman play kube
Quick fix in play.go to use logDriver to set the correct
log driver rather than overwriting query.LogDriver.
[NO NEW TESTS NEEDED]

Signed-off-by: Niall Crowe <nicrowe@redhat.com>
2022-06-03 14:49:43 +01:00
OpenShift Merge Robot
f7a54088c3
Merge pull request #14470 from shanesmith/machine-force-remove-doesnt-stop
Stop machine before force removing files
2022-06-03 04:29:02 -04:00
Shane Smith
b8de285a42
Stop machine before force removing files
In #13466 the ability to force remove a machine while it's running was
added but it did not first stop the machine, all files get deleted but
the qemu VM would essentially be orphaned.

[NO NEW TESTS NEEDED]

Signed-off-by: Shane Smith <shane.smith@shopify.com>
2022-06-02 16:58:43 -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
13cdf862e6
Merge pull request #14301 from rhatdan/volume
Support setting image_volume_mode in containers.conf
2022-06-02 10:16:28 -04:00
OpenShift Merge Robot
8b972ff8ca
Merge pull request #14436 from Luap99/net-remote-default
pkg/specgen: parse default network mode on server
2022-06-02 08:48:07 -04:00
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
2958aee083
Merge pull request #14417 from Luap99/machine-ssh
podman machine ssh: set correct exit code
2022-06-02 04:24:01 -04:00
OpenShift Merge Robot
f27f9de5e6
Merge pull request #14448 from baude/issue14231
expose podman.sock in machine inspect
2022-06-02 04:20:06 -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
Brent Baude
8291b51ceb expose podman.sock in machine inspect
For consumers of the podman.sock who want a predictable way to find the
podman sock, we now include it under 'ConnectionConfig' in podman
machine inspect.

Fixes: #14231

Signed-off-by: Brent Baude <bbaude@redhat.com>
2022-06-01 10:48:17 -05:00
Jake Correnti
dbdc26a4cf Removed imageStream hardcoded value
[NO NEW TESTS NEEDED] Removed `imageStream` hardcoded value  that was set to
testing. Since podman4 is in the fcos trees, it should be removed. The
respective comments have also been removed.

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-06-01 11:44:35 -04:00
Paul Holzinger
2805c7353b
pkg/specgen: parse default network mode on server
When podman-remote is used we should not resolve the default network
mode on the client. Defaults should be set on the server. In this case
this is important because we have different defaults for root/rootless.
So when the client is rootless and the server is root we must pick the
root default.

Note that this already worked when --network was set since we did not
parsed the flag in this case. To reproduce you need --network=default.

Also removed a unused function.

[NO NEW TESTS NEEDED] I tested it manually but I am not sure how I can
hook a test like this up in CI. The client would need to run as rootless
and the server as root or the other way around.

Fixes #14368

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-01 17:13:30 +02:00
Paul Holzinger
4a83465511
podman machine ssh: do not print warning everytime
Currenlty this ssh warning is printed everytime:
`Warning: Permanently added '[localhost]:33915' (ED25519) to the list of known hosts.`

Since this is very anoying and makes it harder to capture the actual
command output we should silence this. With log level error we will only
see the important messages from ssh.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-30 16:21:11 +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
Paul Holzinger
0e58636c3a
podman machine ssh: set correct exit code
Forward the ssh exit code to the podman caller. This is useful for
scripts. Use the same logic as podman unshare.

Fixes #14401

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-30 15:55:20 +02:00
Paul Holzinger
a6f8cad545
fix bad import path for cmd/podman/utils
Libpod or packages under /pkg should never import from /cmd/...
This will quickly result in import cycles and weird code paths.
Also there is no reason to use this special code we can just use
syscall.SIGHUB as SIGNAL.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-30 15:29:08 +02:00
OpenShift Merge Robot
f48bf5808b
Merge pull request #14393 from jwhonce/wip/archive_todo
Add API support for NoOverwriteDirNonDir
2022-05-27 10:43:36 -04:00
Jhon Honce
8efdbf5c4c Add API support for NoOverwriteDirNonDir
Update method signatures and structs to pass option to buildah code

```release-note
NONE
```

[NO NEW TESTS NEEDED]

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2022-05-26 16:31:15 -07: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
Jhon Honce
338f012370 Remove unused archive flag from diff commands
* Option left in images/diff.go CLI as comment implies it is needed for
  backwards compatibility.

```release-note
NONE
```

[NO NEW TESTS NEEDED]

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2022-05-25 08:50:12 -07: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
OpenShift Merge Robot
af01cd06dd
Merge pull request #14357 from rhatdan/codespell
Fix codespell errors
2022-05-25 10:32:48 -04:00
OpenShift Merge Robot
1dcd1c970d
Merge pull request #14308 from n1hility/root-cgroup
Support running podman under a root v2 cgroup
2022-05-25 08:53:15 -04:00
Valentin Rothberg
c9279d4d93 pkg/bindings/play/play.go: drop TODO message
As already done in a previous commit: a global system context does not
make sense for bindings, so remove the message.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-25 12:36:00 +02:00
Valentin Rothberg
462cb3370d pkg/bindings/containers/archive.go: drop TODO
We are already passed 4.0 and a wrapper like this really does not hurt.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-25 12:35:01 +02:00
Valentin Rothberg
60e31d87d1 pkg/auth: drop the TODO
It is not a TODO item and if, it should be added to c/image.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-25 12:33:34 +02:00
Valentin Rothberg
09ae060a73 pkg/api/handlers/compat/images.go: drop TODO message
An undefined "this" or "that" is terrible.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-25 12:31:31 +02:00
Daniel J Walsh
429b1f7685
Fix codespell errors
[NO NEW TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-25 05:56:29 -04:00
OpenShift Merge Robot
0f5c06dac5
Merge pull request #14330 from Luap99/completion3
cmd/podman/common/completion.go: fix FIXMEs
2022-05-24 14:24:46 -04:00
OpenShift Merge Robot
eea7491d6b
Merge pull request #14327 from rhatdan/common
Use containers/common/pkg/util.StringToSlice
2022-05-24 13:48:50 -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
Paul Holzinger
70f147d019
cmd/podman/common/completion.go: fix FIXMEs
There is no good way to recommend labels for podman container runlabel.

Add the missing max-size log option. These are the only documented
options so the completion should not suggest something different.

Add proper --stop-signal completion. It will now complete all supported
signal names both upper and lowercase depending on the user input. Also
it work with and without the SIG prefix.

Fixing the TODOs in this file are more complicated since they describe
bigger features.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-24 17:56:37 +02:00