Commit graph

23873 commits

Author SHA1 Message Date
OpenShift Merge Robot
cd58306a81
Merge pull request #19207 from Luap99/mv-dns
netavark: macvlan networks keep custom nameservers
2023-07-12 14:09:51 -04:00
OpenShift Merge Robot
dcf0a3cfc2
Merge pull request #19203 from sstosh/remote-play-kube-userns
remote: fix podman-remote play kube --userns
2023-07-12 14:07:14 -04:00
Daniel J Walsh
d1950869ab
Update cmd/podman/login.go
Co-authored-by: Ashley Cui <ashleycui16@gmail.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-07-12 11:09:16 -04:00
Philipp Wagner
cce8501a5b [CI:DOCS] Reformat and reorder table with --userns options
Reorder the table with --userns options to match the description below.
Also, reformat the Markdown to be better readable in source form.

Signed-off-by: Philipp Wagner <phw@ibm.com>
2023-07-12 16:05:06 +02:00
OpenShift Merge Robot
9d9f4aaafe
Merge pull request #19006 from deuill/quadlet-volume-network-names
Allow setting volume and network names in Quadlet
2023-07-12 08:53:38 -04:00
Daniel J Walsh
d497eb369c
Add secret support to podman login
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-07-12 08:45:02 -04:00
Paul Holzinger
2a9b9bb53f
netavark: macvlan networks keep custom nameservers
The change to use the custom dns server in aardvark-dns caused a
regression here because macvlan networks never returned the nameservers
in netavark and it also does not make sense to do so.

Instead check here if we got any network nameservers, if not we then use
the ones from the config if set otherwise fallback to host servers.

Fixes #19169

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-12 14:07:34 +02:00
OpenShift Merge Robot
958191aedc
Merge pull request #19199 from containers/renovate/github.com-container-orchestrated-devices-container-device-interface-0.x
fix(deps): update module github.com/container-orchestrated-devices/container-device-interface to v0.6.0
2023-07-12 07:26:18 -04:00
OpenShift Merge Robot
99ca4435fc
Merge pull request #19197 from containers/renovate/go-github.com/gin-gonic/gin-vulnerability
chore(deps): update module github.com/gin-gonic/gin to v1.9.1 [security]
2023-07-12 07:21:00 -04:00
OpenShift Merge Robot
6fc7c48421
Merge pull request #19190 from containers/renovate/github.com-containers-libhvee-0.x
fix(deps): update module github.com/containers/libhvee to v0.3.0
2023-07-12 07:18:29 -04:00
OpenShift Merge Robot
c5006f4786
Merge pull request #19204 from Luap99/vendor-tidy
go mod: no longer use 1.18
2023-07-12 06:26:47 -04:00
Toshiki Sonoda
c6b5b9a02c remote: fix podman-remote play kube --userns
Fix `podman play kube --userns` to work in remote environment.

Related: #17392

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2023-07-12 18:47:36 +09:00
renovate[bot]
441af003ac fix(deps): update container-device-interface to v0.6.0
[NO NEW TESTS NEEDED]

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-07-12 11:37:59 +02:00
OpenShift Merge Robot
d3ac265fc5
Merge pull request #19196 from vrothberg/bz-2180483
system service: unset listen fds on tcp
2023-07-12 05:05:31 -04:00
Paul Holzinger
656ad760f6
go mod: no longer use 1.18
1.18 is EOL and we should not have to set this since the current
versions should generate compatible go.sum files anyway.

This is an attempt to fix broken renovate PRs which create a different
go.sum and thus do not pass CI checks.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-12 10:36:22 +02:00
renovate[bot]
aeef403cd2 fix(deps): update module github.com/containers/libhvee to v0.3.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-07-12 10:31:35 +02:00
renovate[bot]
6fd4ae6d29 chore(deps): update module github.com/gin-gonic/gin to v1.9.1 [security]
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-07-12 10:30:34 +02:00
OpenShift Merge Robot
5444073581
Merge pull request #19186 from rhatdan/codespell
Run codespell on code
2023-07-11 20:09:20 -04:00
Daniel J Walsh
0dcfe6e069
Run codespell on code
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2023-07-11 16:44:22 -04:00
OpenShift Merge Robot
1be2ec1d4f
Merge pull request #19193 from Luap99/hostname-alias
add hostname to network alias
2023-07-11 12:19:02 -04:00
OpenShift Merge Robot
b994f8610d
Merge pull request #19131 from baude/applehvpass2
AppleHV enablement pass #2
2023-07-11 10:59:58 -04:00
Valentin Rothberg
3ad55f48bb system service: unset listen fds on tcp
Disable leaking the LISTEN_* variables into containers which are
observed to be passed by systemd even without being socket activated as
described in https://access.redhat.com/solutions/6512011.

[NO NEW TESTS NEEDED] - Ultimately, the solution 6512011 should be updated.

Fixes: bugzilla.redhat.com/show_bug.cgi?id=2180483
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-07-11 16:44:27 +02:00
OpenShift Merge Robot
b1dd0a3350
Merge pull request #19189 from pjannesen/issue/19175
Fix: cgroup is not set: internal libpod error after os reboot
2023-07-11 10:43:22 -04:00
Paul Holzinger
f1c68b79eb
add hostname to network alias
We use the name as alias but using the hostname makes also sense and
this is what docker does. We have to keep the short id as well for
docker compat.

While adding some tests I removed some duplicated tests that were
executed twice for nv for no reason.

Fixes #17370

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-11 15:38:24 +02:00
Paul Holzinger
b6ec2127b8
libpod: set cid network alias in setupContainer()
Since we have sqlite there is no point in duplicating this acroos two db
backends. Just set earlier when we validate the networks anyway.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-11 15:16:11 +02:00
OpenShift Merge Robot
bd85be42fd
Merge pull request #19100 from edsantiago/pasta_better_cleanup
pasta tests: automatically determine test parameters
2023-07-11 09:02:47 -04:00
Brent Baude
4e96686e9d AppleHV enablement pass #2
* Use vfkit command line assembly
* Inject ignition file into guest using http over vsock
* Ready notification through use of vsock

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2023-07-11 06:36:10 -05:00
OpenShift Merge Robot
e6dbb422ef
Merge pull request #19191 from sstosh/e2e-fix-username
e2e: Fetch the correct user name
2023-07-11 04:48:14 -04:00
Toshiki Sonoda
72a1857e43 e2e: Fetch the correct user name
When fetching the user name, you need to use User.Username
instead of User.Name, as with other tests.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2023-07-11 13:51:47 +09:00
OpenShift Merge Robot
77b36ca35e
Merge pull request #19102 from jakecorrenti/kube-generate-print-annotations
Add `--no-trunc` flag to maintain original annotation length
2023-07-10 22:41:39 -04:00
Jake Correnti
7b54fd84ec Add --no-trunc flag to maintain original annotation length
Adds a `--no-trunc` flag to `podman kube generate` preventing the
annotations from being trimmed at 63 characters. However, due to
the fact the annotations will not be trimmed, any annotation that is
longer than 63 characters means this YAML will no longer be Kubernetes
compatible. However, these YAML files can still be used with `podman
kube play` due to the addition of the new flag below.

Adds a `--no-trunc` flag to `podman kube play` supporting YAML files with
annotations that were not truncated to the Kubernetes maximum length of
63 characters.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2023-07-10 18:02:53 -04:00
Hedayat Vatankhah
600de05e3b
Fix TCP probes when the optional host field is not given
Signed-off-by: Hedayat Vatankhah <hedayat.fwd@gmail.com>
2023-07-11 01:00:57 +03:30
Hedayat Vatankhah
ac3a115c33
Add support for using port names in Kubernetes health probes
Closes #18645

Signed-off-by: Hedayat Vatankhah <hedayat.fwd@gmail.com>
2023-07-11 01:00:57 +03:30
Peter Jannesen
4494cefbca Fix: cgroup is not set: internal libpod error after os reboot
[NO NEW TESTS NEEDED]
Closes #19175

Signed-off-by: Peter Jannesen <peter@jannesen.com>
2023-07-10 22:37:43 +02:00
Alex Palaistras
932fae4028 Allow setting volume and network names in Quadlet
This commit extends `Volume` and `Network` unit definitions with two
additional parameters, `VolumeName` and `NetworkName`, which will,
respectively, set a user-defined name for the corresponding volume and
network. This is similar to how the `ContainerName` directive currently
works, and should allow for smoother transitions to Quadlet-managed
resources.

Closes: #19003
Signed-off-by: Alex Palaistras <alex@deuill.org>
2023-07-10 20:33:19 +01:00
Ed Santiago
427b959a1c pasta tests: automatically determine test parameters
...from the test name. Eliminates scary duplication.

Followup to #19053: instead of cross-checking pasta test args
against test name, eliminate the args entirely. Determine
them all from the @test name itself.

Example:
   "TCP translated port range forwarding, IPv4, loopback"
     |  |          |    |     |           |     +-- iftype=loopback
     |  |          |    |     |           +-------- ip_ver=4
     |  |          |    |     +-------------------- bytes=1
     |  |          |    +-------------------------- range=3
     |  |          +------------------------------- (ignored)
     |  +------------------------------------------ delta=1
     +--------------------------------------------- proto=tcp

Signed-off-by: Ed Santiago <santiago@redhat.com>
2023-07-10 13:07:15 -06:00
OpenShift Merge Robot
d31b9eb9e7
Merge pull request #19170 from dfr/freebsd-mtab
libpod: don't make a broken symlink for /etc/mtab on FreeBSD
2023-07-10 15:02:14 -04:00
OpenShift Merge Robot
eb9d44241e
Merge pull request #19004 from rhatdan/secret
Add --replace flag to podman secret create
2023-07-10 14:59:29 -04:00
OpenShift Merge Robot
7b08e024c1
Merge pull request #19180 from vrothberg/fix-19147
manifest inspect: support authentication
2023-07-10 14:40:29 -04:00
OpenShift Merge Robot
8c071ca653
Merge pull request #19179 from Luap99/syslog
make --syslog errors non fatal
2023-07-10 14:37:36 -04:00
OpenShift Merge Robot
79d3453f32
Merge pull request #19182 from Luap99/slow-remote-version
test/e2e: wait for socket
2023-07-10 13:16:51 -04:00
Paul Holzinger
97fd03ccdf
test/e2e: wait for socket
Do not use podman info/version as they are expensive and clutter the log
for no reason. Just checking if we can connect to the socket should be
good enough and much faster.

Fix the non existing error checking, so that we actually see an useful
error when this does not work.

Also change the interval, why wait 2s for a retry lets take 100ms steps
instead.

Fixes #19010

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-10 17:27:11 +02:00
Valentin Rothberg
a69194b02f manifest inspect: support authentication
Previous tests have worked by pure chance since the client and server
ran on the same host; the server picked up the credentials created by
the client login.

Extend the gating tests and add a new integration test which is further
capable of exercising the remote code.

Note that fixing authentication support requires adding a new
`--authfile` CLi flag to `manifest inspect`.  This will at least allow
for passing an authfile to be bindings.  Username and password are not
yet supported.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2023-07-10 16:26:19 +02:00
Paul Holzinger
70428baef3
api: fix slow version endpoint
This endpoint queried the same package versions twice causing it to be
slower than info. Because it already called info we can just reuse the
package versions from there.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-10 15:46:45 +02:00
Doug Rabson
f8213a6d53 libpod: don't make a broken symlink for /etc/mtab on FreeBSD
This file has not been present in BSD systems since 2.9.1 BSD and as far
as I remember /proc/mounts has never existed on BSD systems.

[NO NEW TESTS NEEDED]

Signed-off-by: Doug Rabson <dfr@rabson.org>
2023-07-10 12:41:41 +01:00
Paul Holzinger
499b8d13c5
CI: remove build without cgo task
Podman is basically unusable without cgo, checking if it compiles
without adds no value and just tricks people into thinking it works when
it does not.

This means we do not need extra to NOP out a lot of cgo calls with
functions that just return an error like `XXX is not supported without
cgo`.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-10 13:33:03 +02:00
Paul Holzinger
42ea0bf9c7
libpod: use io.Writer vs io.WriteCloser for attach streams
We never ever close the stream so we do not need the Close() function in
th ebackend, the caller should close when required which may no be the
case, i.e. when os.Stdout/err is used.
This should not be a breaking change as the io.Writer is a subset of
io.WriteCloser, therfore all code should still compile while allowing to
pass in Writers without Close().

This is useful for podman top where we exec ps in the container via
podman exec.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-10 13:33:03 +02:00
Paul Holzinger
597ebeb60f
top: do not depend on ps(1) in container
This ended up more complicated then expected. Lets start first with the
problem to show why I am doing this:

Currently we simply execute ps(1) in the container. This has some
drawbacks. First, obviously you need to have ps(1) in the container
image. That is no always the case especially in small images. Second,
even if you do it will often be only busybox's ps which supports far
less options.

Now we also have psgo which is used by default but that only supports a
small subset of ps(1) options. Implementing all options there is way to
much work.

Docker on the other hand executes ps(1) directly on the host and tries
to filter pids with `-q` an option which is not supported by busybox's
ps and conflicts with other ps(1) arguments. That means they fall back
to full ps(1) on the host and then filter based on the pid in the
output. This is kinda ugly and fails short because users can modify the
ps output and it may not even include the pid in the output which causes
an error.

So every solution has a different drawback, but what if we can combine
them somehow?! This commit tries exactly that.

We use ps(1) from the host and execute that in the container's pid
namespace.
There are some security concerns that must be addressed:
- mount the executable paths for ps and podman itself readonly to
  prevent the container from overwriting it via /proc/self/exe.
- set NO_NEW_PRIVS, SET_DUMPABLE and PDEATHSIG
- close all non std fds to prevent leaking files in that the caller had
  open
- unset all environment variables to not leak any into the contianer

Technically this could be a breaking change if somebody does not
have ps on the host and only in the container but I find that very
unlikely, we still have the exec in container fallback.

Because this can be insecure when the contianer has CAP_SYS_PTRACE we
still only use the podman exec version in that case.

This updates the docs accordingly, note that podman pod top never falls
back to executing ps in the container as this makes no sense with
multiple containers so I fixed the docs there as well.

Fixes #19001
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2215572

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-10 13:32:55 +02:00
Paul Holzinger
3f8ee70d0c
make --syslog errors non fatal
Podman will always pass down --syslog to conmon since 13c2aca21.
However there systems without syslog running, likely in container
setups. As reported in this was already a problem before when debug
level is used. Then conmon will pass down --syslog back to the podman
container cleanup command causing it to fail without doing anything.
Given that I think it is better to just ignore the error and log it on
debug level, we need to make sure cleanup works consistently.

[NO NEW TESTS NEEDED]

Fixes #19075

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2023-07-10 11:45:59 +02:00
OpenShift Merge Robot
7cd1fb77f9
Merge pull request #19172 from eriksjolund/fix_underscore_in_man_page
[CI:DOCS] uidmap man pages: fix corrupt italics
2023-07-10 05:30:58 -04:00