Commit Graph

6464 Commits

Author SHA1 Message Date
openshift-merge-bot[bot]
75369fd283 Merge pull request #23986 from mheon/fix_23981
Match output of Compat Top API to Docker
2024-09-17 19:06:13 +00:00
Matt Heon
e04668c8ca Match output of Compat Top API to Docker
We were only splitting on tabs, not spaces, so we returned just a
single line most of the time, not an array of the fields in the
output of `ps`. Unfortunately, some of these fields are allowed
to contain spaces themselves, which makes things complicated, but
we got lucky in that Docker took the simplest possible solution
and just assumed that only one field would contain spaces and it
would always be the last one, which is easy enough to duplicate
on our end.

Fixes #23981

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-09-17 11:34:22 -04:00
Paul Holzinger
49a07fce49 update golangci-lint to 1.61.0
Silence some new warnings that should not matter here.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-17 13:30:59 +02:00
openshift-merge-bot[bot]
9da233678e Merge pull request #23961 from Luap99/pasta-userns
pkg/specgen: allow pasta when running inside userns
2024-09-17 06:43:28 +00:00
openshift-merge-bot[bot]
47b85af635 Merge pull request #23948 from l0rd/build-with-volumes-on-windows
Convert windows paths in volume arg of the build command
2024-09-16 19:16:13 +00:00
openshift-merge-bot[bot]
fbce6dc106 Merge pull request #23949 from l0rd/wsl-disk-oci-pull
Get WSL disk as an OCI artifact
2024-09-16 15:21:53 +00:00
Mario Loriedo
b2e6d53265 Get WSL disk as an OCI artifact
[Since a few days][1] WSL disk releases are also pushed
to [quay.io/podman/machine-os-wsl][2]. This PR updates
`podman machine init` mechanism to download WSL disk
images. The WSL disk images are now pulled from quay.io
as for the rest of the providers.

Fixes [#22927][3] and [RUN-2177][4]

[1]: https://github.com/containers/podman-machine-wsl-os/pull/6
[2]: https://quay.io/repository/podman/machine-os-wsl?tab=tags
[3]: https://github.com/containers/podman/issues/22927
[4]: https://issues.redhat.com/browse/RUN-2177

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-09-16 14:36:50 +02:00
Paul Holzinger
91dbd6dc33 pkg/specgen: allow pasta when running inside userns
pasta doesn't switch to nobody when we already run in a userns so we can
use it there. The unshare package checks the same condition and returns
true even if uid 0 in this case so we can directly call this.

ref https://github.com/containers/podman/issues/17840#issuecomment-2343251014

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-16 11:43:18 +02:00
Mario Loriedo
1857d7e50f Convert windows paths in volume arg of the build command
Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-09-13 17:24:06 +02:00
Nicola Sella
d124d90e18 Improve error when starting multiple machines
Instead of ErrVMAlreadyRunning use a more appropriate error.
Also improve the message a little bit.

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

Signed-off-by: Nicola Sella <nsella@redhat.com>
2024-09-13 15:51:27 +02:00
Jake Correnti
e041f2a7b7 Remove RemoveFilesAndConnections
The `RemoveFilesAndConnections` function is not being used, so its safe
to remove it and not carry unnecessary code that we need to maintain.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-09-12 14:40:24 -04:00
Jake Correnti
54b71b637c Add GetAllMachinesAndRootfulness
Adds the function `GetAllMachinesAndRootfulness` which creates a map of
all podman machines, of any supported provider, on the system and
whether it is rootful or not.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-09-12 14:31:55 -04:00
openshift-merge-bot[bot]
7764bea981 Merge pull request #23819 from l0rd/kube-play-image-type-volumes
Add `kube play` support for volumes of type image
2024-09-11 18:32:24 +00:00
Mario Loriedo
db12343e27 Add kube play support for image volume source
Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-09-10 12:37:06 +00:00
Anders F Björklund
837755e643 refactor: add sshClient function
The ssh options needs some weird parameters like (the raw) uri
and machine (insecure), so it is not enough with url and identity.

The "secure" query parameter was removed in Podman v4.3, it is now
replaced with the "machine" option parameter (InsecureIgnoreHostKey)

I think that url.Parse will fail to add any url.Port that is not
an integer, so the strconv.Atoi error probably can never happen?

But since it is only a validation error and not a connection error,
it cannot be wrapped in a ConnectError so that goes into function.

Signed-off-by: Anders F Björklund <anders.f.bjorklund@gmail.com>
2024-09-10 07:19:39 +02:00
Daniel J Walsh
eb396705c6 Remove containers/common/pkg/config from pkg/util
Probably has to wait for V6

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-09-06 07:45:04 -04:00
openshift-merge-bot[bot]
dde031076b Merge pull request #23722 from umohnani8/jobs
Add support for Job to kube generate & play
2024-09-06 09:02:55 +00:00
openshift-merge-bot[bot]
ae14dff812 Merge pull request #23398 from yarikoptic/enh-codespell
Add codespell support (config, workflow to detect/not fix) and make it fix few typos
2024-09-05 18:53:25 +00:00
openshift-merge-bot[bot]
094fed7dbe Merge pull request #23846 from flouthoc/prune-cleancachemount
prune: add `--build-cache` to support clearing build cache using `CleanCacheMount`
2024-09-05 18:47:56 +00:00
Yaroslav Halchenko
12b3d01438 Fix typo: replace buildin with built-in
Signed-off-by: Yaroslav Halchenko <debian@onerussian.com>
2024-09-05 13:56:03 -04:00
flouthoc
901f621daa prune: support clearing build cache using CleanCacheMount
`podman builder prune` and `podman image prune` should also support
cleaning build cache using buildah's public `CleanCacheMount` API.

Reference: https://docs.docker.com/reference/cli/docker/builder/prune/
Context: https://github.com/containers/podman/discussions/15612#discussioncomment-10532721
Context: https://github.com/containers/buildah/pull/4490

Signed-off-by: flouthoc <flouthoc.git@gmail.com>
2024-09-05 10:40:07 -07:00
Urvashi Mohnani
bdf96e7df2 Add support for Job to kube generate & play
The kube generate command can now generate a yaml for
the Job kind and the kube play command can create a pod
and containers with podman when passed in a Job yaml.
Add relevant tests and docs for this.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2024-09-05 11:36:38 -04:00
Steve Jibson
15bde1abdb Add DNS, DNSOption and DNSSearch to quadlet pod
Signed-off-by: Steve Jibson <steve@jibson.com>
2024-09-04 11:31:32 -06:00
openshift-merge-bot[bot]
57efe1daf0 Merge pull request #23841 from jakecorrenti/defaultmachine
Add disclaimer in `podman machine info` manpage
2024-09-04 11:48:24 +00:00
Jake Correnti
8eb7eff899 Add disclaimer to podman machine info manpage.
Adds a note in the `podman machine info` manpage that clarifies
that `defaultmachine` in the `podman machine info` output does
not suggest that a user can set a default podman machine via
system connections.

Additionally adds a Podman 6.0 TODO comment to change the name of the
field to `ActiveMachineConnection` to better describe its purpose.

[NO NEW TESTS NEEDED]

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-09-03 15:23:18 -04:00
Mikel Olasagasti Uranga
e9a4534cb1 Update module github.com/shirou/gopsutil to v4
Signed-off-by: Mikel Olasagasti Uranga <mikel@olasagasti.info>
2024-09-03 18:20:12 +02:00
Paul Holzinger
f93fcf7dee bump go to 1.22
Many dependencies started using go 1.22 which means we have to follow in
order to update.

Disable the now depracted exportloopref linter as it was replaced by
copyloopvar as go fixed the loop copy problem in 1.22[1]

Another new chnage in go 1.22 is the for loop syntax over ints, the
intrange linter chacks for this but there a lot of loops that have to be
converted so I didn't do it here and disable th elinter for now, th eold
syntax is still fine.

[1] https://go.dev/blog/loopvar-preview

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-03 15:14:15 +02:00
openshift-merge-bot[bot]
29eb8ce09e Merge pull request #23814 from ruihe774/quadlet-network-container
quadlet: support container network reusing
2024-09-02 16:23:01 +00:00
Arthur Sengileyev
1732338630 Implement publishing API UNIX socket on Windows platforms
gvproxy and win-sshproxy have capabilities to serve this type of enpoint.
This change only adds one additional API enpoint publishing by appending
proxy command lines.

Signed-off-by: Arthur Sengileyev <arthur.sengileyev@gmail.com>
2024-08-31 17:27:05 +03:00
openshift-merge-bot[bot]
ef905ef8d0 Merge pull request #23726 from ashley-cui/machlist
machine: Add -all-providers flag to machine list
2024-08-30 16:52:31 +00:00
openshift-merge-bot[bot]
d49ac106b0 Merge pull request #23807 from Honny1/fix-top-layer-not-found-storage
Vendor `c/common:8483ef6022b4`
2024-08-30 15:08:01 +00:00
Jan Rodák
c6fe5e5395 Vendor c/common:8483ef6022b4
This commit vendor pre-release version of `c/common:8483ef6022b4`.
It also adapts the code to the new `c/common/libimage` API, which
fixes an image listing race that was listing false warnings.

fixes: #23331

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2024-08-30 16:13:54 +02:00
Misaki Kasumi
71fd15726d quadlet: support container network reusing
Signed-off-by: Misaki Kasumi <misakikasumi@outlook.com>
2024-08-30 21:35:21 +08:00
Ygal Blum
2b14db2af3 Quadlet - Support multiple image tags in .build files
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-08-29 15:07:49 -04:00
openshift-merge-bot[bot]
10363e1e81 Merge pull request #23766 from Luap99/http-attach
fix races in the HTTP attach API
2024-08-28 18:11:50 +00:00
Ashley Cui
41f945fc24 machine: Add -all-providers flag to machine list
Podman machine list now supports a new option, --all-providers, which lists all machines from all providers.

Signed-off-by: Ashley Cui <acui@redhat.com>
2024-08-28 13:40:50 -04:00
Mario Loriedo
4f4ebdce5b Stop skipping machine volume test on Hyper-V
Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-08-27 15:31:38 +02:00
Paul Holzinger
a89fef6e2a cleanup: add new --stopped-only option
The podman container cleanup process runs asynchronous and by the time
it gets the lock it is possible another podman process already did the
cleanup and then did a new init() to start it again. If the cleanup
process gets the lock there it will cause very weird things.

This can be observed in the remote start API as CI flakes.

Fixes #23754

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-27 15:01:23 +02:00
Paul Holzinger
bf74797c69 fix races in the HTTP attach API
This is very similar to commit 3280da0500, we cannot check the state
then unlock to then lock again and do the action. Everything must
happen under one lock. To fix this move the code into the HTTPAttach
function in libpod. The locking here is a bit weird because attach
blocks for the lifetime of attach which can be very long so we must
unlock before performing the attach.

Fixes #23757

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-27 15:00:08 +02:00
openshift-merge-bot[bot]
9892feedd9 Merge pull request #23713 from jerome59/main
Quadlet add support for --add-host --ip and --ip6
2024-08-27 09:21:45 +00:00
Jerome Degroote
7c5d8bec0d Add support for AddHost in quadlet .pod and .container
Signed-off-by: Jerome degroote <jeromedu59230@gmx.fr>
2024-08-26 14:32:08 +02:00
Philippe Martin
3e58e04d3e Quote systemd DefaultEnvironment Proxy values, as documented in systemd.conf man page:
Example:
DefaultEnvironment="VAR1=word1 word2" VAR2=word3 "VAR3=word 5 6"
Sets three variables "VAR1", "VAR2", "VAR3".

Double quote is not escaped, as there is no chance it appears in a proxy value. User can still espace it if really necessary

Signed-off-by: Philippe Martin <phmartin@redhat.com>
2024-08-26 13:12:47 +02:00
Ben Krieger
6c68f4ad97 Use HTTP path prefix of TCP connections to match Docker context behavior
Signed-off-by: Ben Krieger <ben.krieger@intel.com>
2024-08-22 21:22:26 -04:00
Jerome Degroote
d55b12f70b Add support for IP in quadlet .pod files
Signed-off-by: Jerome degroote <jeromedu59230@gmx.fr>
2024-08-22 14:51:12 +02:00
openshift-merge-bot[bot]
e7905122d7 Merge pull request #23679 from ruihe774/pod-userns
quadlet: support user mapping in pod unit
2024-08-22 12:33:43 +00:00
Misaki Kasumi
4fbfa7de6e quadlet: support user mapping in pod unit
Signed-off-by: Misaki Kasumi <misakikasumi@outlook.com>
2024-08-22 09:41:06 +08:00
openshift-merge-bot[bot]
43fe3ebaf3 Merge pull request #23670 from mheon/fix_stop_and_rmi
Fix `podman stop` and `podman run --rmi`
2024-08-20 21:45:51 +00:00
openshift-merge-bot[bot]
8be89caf46 Merge pull request #23675 from ruihe774/fix-pod-cgroups
Add key CgroupsMode in Quadlet container unit
2024-08-20 18:47:16 +00:00
Misaki Kasumi
1ccccde183 quadlet: add key CgroupsMode
Signed-off-by: Misaki Kasumi <misakikasumi@outlook.com>
2024-08-20 22:09:36 +08:00
Matt Heon
458ba5a8af Fix podman stop and podman run --rmi
This started off as an attempt to make `podman stop` on a
container started with `--rm` actually remove the container,
instead of just cleaning it up and waiting for the cleanup
process to finish the removal.

In the process, I realized that `podman run --rmi` was rather
broken. It was only done as part of the Podman CLI, not the
cleanup process (meaning it only worked with attached containers)
and the way it was wired meant that I was fairly confident that
it wouldn't work if I did a `podman stop` on an attached
container run with `--rmi`. I rewired it to use the same
mechanism that `podman run --rm` uses, so it should be a lot more
durable now, and I also wired it into `podman inspect` so you can
tell that a container will remove its image.

Tests have been added for the changes to `podman run --rmi`. No
tests for `stop` on a `run --rm` container as that would be racy.

Fixes #22852
Fixes RHEL-39513

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-08-20 09:51:18 -04:00