Commit Graph

3185 Commits

Author SHA1 Message Date
OpenShift Merge Robot 87d129e805
Merge pull request #13788 from flouthoc/support-volume-opts
run, mount: allow setting driver specific option using `volume-opt=`
2022-04-12 13:17:02 -04:00
OpenShift Merge Robot e5d86aa35b
Merge pull request #13093 from 0xC0ncord/selinux-conmon-agnostic
selinux: remove explicit range transition when starting conmon
2022-04-12 03:38:09 -04:00
Aditya R 81a95fade5
run, mount: allow setting driver specific option using volume-opt
`--mount` should allow setting driver specific options using
`volume-opt` when `type=volume` is set.

This ensures parity with docker's `volume-opt`.

Signed-off-by: Aditya R <arajan@redhat.com>
2022-04-12 12:30:09 +05:30
Aditya R 0cebd158b6
container,inspect: convert Entrypoint to array instead of a string
Convert container entrypoint from string to an array inorder to make
sure there is parity between `podman inspect` and `docker inspect`

Signed-off-by: Aditya R <arajan@redhat.com>
2022-04-08 18:43:37 +05:30
OpenShift Merge Robot 330205ebed
Merge pull request #13490 from gcalin/13266
pod logs enhancements: option to color logs
2022-04-04 13:43:27 -04:00
OpenShift Merge Robot 23e57575b0
Merge pull request #13594 from cdoern/podVolumes
fix pod volume passing and alter infra inheritance
2022-04-01 09:51:23 -04:00
OpenShift Merge Robot fbbf5e88fd
Merge pull request #13646 from Luap99/slirp4netns-portrange
fix slirp4netns port forwarding with ranges
2022-03-30 13:25:20 -04:00
OpenShift Merge Robot 0cb93e2285
Merge pull request #13712 from Luap99/netns-scope-systemd
rootless netns: move process to scope only with systemd
2022-03-30 10:23:19 -04:00
Paul Holzinger 1f1cf7bd40
rootless netns: move process to scope only with systemd
When you run podman on a non systemd system we should not try to move the
process under a new systemd scope.

[NO NEW TESTS NEEDED]

Ref #13703

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-30 13:02:41 +02:00
John Matthews 1ffcc4a888 Add 'Os' to be queried via 'version' output
Signed-off-by: John Matthews <jwmatthews@gmail.com>
2022-03-29 18:10:59 -04:00
Paul Holzinger eedaaf33cd
fix slirp4netns port forwarding with ranges
The slirp4netns port forwarder was not updated to make use of the new
port format. This results in a problem when port ranges are used since
it does not read the range field from the port.

Update the logic to iterate through all ports with the range and
protocols. Also added a system test for port ranges with slirp4netns,
rootlesskit and the bridge network mode.

Fixes #13643

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-29 19:18:40 +02:00
gcalin c185d8c0d6
Add option for pod logs to display different colors per container.
Signed-off-by: Krzysztof Baran <krysbaran@gmail.com>
Signed-off-by: gcalin <caling@protonmail.com>
2022-03-29 17:29:13 +02:00
cdoern 7a53428049 fix pod volume passing and alter infra inheritance
the infra Inherit function was not properly passing pod volume information to new containers
alter the inherit function and struct to use the new `ConfigToSpec` function used in clone
pick and choose the proper entities from a temp spec and validate them on the spegen side rather
than passing directly to a config

resolves #13548

Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
Signed-off-by: cdoern <cdoern@redhat.com>
Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2022-03-29 11:10:46 -04:00
Valentin Rothberg 21502987b2 replace hpcloud/tail with nxadm/tail
The hpcloud is not maintained anymore.  nxadm is already part of the
dependency chain, so it won't add work for downstream packages.

While testing upcoming changes to the events-file backend, I noticed
that nxadm is shipping required fixes.

[NO NEW TESTS NEEDED]

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-03-29 13:35:37 +02:00
OpenShift Merge Robot b76d717bbf
Merge pull request #13640 from Luap99/slirp4netns-fail
network setup: fail if slirp4netns is not installed
2022-03-28 15:51:51 +02:00
OpenShift Merge Robot ffe87c0bdf
Merge pull request #13677 from flouthoc/rename-event
libpod, event: generate a valid event on container `rename` operation
2022-03-28 15:15:51 +02:00
Paul Holzinger 38bd4010cf
network setup: fail if slirp4netns is not installed
I do not see why we should only log an error. If slirp4netns is
requested but not installed we should error.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-28 12:49:55 +02:00
Aditya R 82ed99b6af
event: generate a valid event on container rename operation
Following commit ensures that podman generates a valid event on `podman
container rename` where event specifies that it is a rename event and
container name swtichted to the latest name.

Signed-off-by: Aditya R <arajan@redhat.com>
2022-03-28 15:07:02 +05:30
Daniel J Walsh d106b294b4
Switch all calls to filepath.Walk to filepath.WalkDir
WalkDir should be faster the Walk, since we often do
not need to stat files.

[NO NEW TESTS NEEDED] Existing tests should find errors.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-03-27 07:18:25 -04:00
OpenShift Merge Robot ddfa087d00
Merge pull request #13660 from rhatdan/error
Remove error stutter
2022-03-27 13:11:31 +02:00
Daniel J Walsh 7680211ede
Remove error stutter
When podman gets an error it prints out "Error: " before
printing the error string.  If the error message starts with
error, we end up with

Error: error ...

This PR Removes all of these stutters.

logrus.Error() also prints out that this is an error, so no need for the
error stutter.

[NO NEW TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-03-25 21:47:04 -04:00
Daniel J Walsh ffbab30d7b
Run codespell to cleanup typos
[NO NEW TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-03-25 15:34:41 -04:00
OpenShift Merge Robot e657c7a170
Merge pull request #13622 from rhatdan/systemd1
When running systemd in a container set container_uuid
2022-03-24 19:05:44 +01:00
Daniel J Walsh b6c713f4d7
Merge pull request #13636 from Luap99/machine-port-proxy
podman machine: fix port forwarding with proxy
2022-03-24 13:53:57 -04:00
OpenShift Merge Robot cd10432b09
Merge pull request #13637 from Luap99/conmon-err
readConmonPipeData: try to improve error
2022-03-24 18:52:44 +01:00
OpenShift Merge Robot 3b1d7a7d24
Merge pull request #13621 from Luap99/doc-libpod
[CI:DOCS] document that using libpod package directly is not supported
2022-03-24 18:49:43 +01:00
Giuseppe Scrivano ab8e15f6ac
Merge pull request from GHSA-qvf8-p83w-v58j
do not set the inheritable capabilities
2022-03-24 17:02:20 +01:00
Paul Holzinger c0bbca8c44
podman machine: fix port forwarding with proxy
When a user has a http proxy configured the VM will use it. However
since gvproxy can only be reached internally from within the VM the port
forwarding HTTP API call should not be redirected to the proxy.

[NO NEW TESTS NEEDED]

Fixes #13628

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-24 12:07:13 +01:00
Paul Holzinger 7ae52e86ff
readConmonPipeData: try to improve error
Issue #10927 reports `container create failed (no logs from conmon): EOF`
errors. Since we do not know the root cause it would be helpful to try
to get as much info as possible out of the error.
(buffer).ReadBytes() will return the bytes read even when an error
occurs. So when we get an EOF we could still have some valuable
information in the buffer. Lets try to unmarshal them and if this fails
we add the bytes to the error message.

This does not fix the issue but it might help us getting a better error.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-24 12:06:48 +01:00
OpenShift Merge Robot 7371306280
Merge pull request #13597 from Luap99/stats
podman stats: calc CPU percentage correctly
2022-03-23 20:37:25 +01:00
Daniel J Walsh 5e28cbc5fc
When running systemd in a container set container_uuid
systemd expects the container_uuid environment variable be set
when it is running in a container.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-03-23 15:05:30 -04:00
Paul Holzinger 5669ffb354
document that using libpod package directly is not supported
We do not support using the libpod package outside of podman. There is
no stable interface which can be used. Instead point users to the API
and go bindings.

Fixes #13086

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-23 19:05:29 +01:00
Matthew Heon 5b2597d523 Fix a potential race around the exec cleanup process
Every exec session run attached will, on exit, do two things: it
will signal the associated `podman exec` that it is finished (to
allow Podman to collect the exit code and exit), and spawn a
cleanup process to clean up the exec session (in case the `podman
exec` process died, we still need to clean up). If an exec
session is created that exits almost instantly, but generates a
large amount of output (e.g. prints thousands of lines), the
cleanup process can potentially execute before `podman exec` has
a chance to read the exit code, resulting in errors. Handle this
by detecting if the cleanup process has already removed the exec
session before handling the error from reading the exec exit
code.

[NO NEW TESTS NEEDED] I have no idea how to test this in CI.

Fixes #13227

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-03-23 09:33:40 -04:00
Giuseppe Scrivano aafa80918a
do not set the inheritable capabilities
The kernel never sets the inheritable capabilities for a process, they
are only set by userspace.  Emulate the same behavior.

Closes: CVE-2022-27649

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-03-23 09:05:18 +01:00
Paul Holzinger 130bcc3a93
podman stats: improve cpu average calc
We can just calculate the cpu percent for the time the container is
running. There is no need to use datapoints.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-22 17:44:58 +01:00
Paul Holzinger 0edb3ddd39
podman stats: calc CPU percentage correctly
When you run podman stats, the first interval always shows the wrong cpu
usage. To calculate cpu percentage we get the cpu time from the cgroup
and compare this against the system time between two stats. Since the
first time we do not have a previous stats an empty struct is used
instead. Thus we do not use the actual running time of the container but
the current unix timestamp (time since Jan 1 1970).

To fix this we make sure that the previous stats time is set to the
container start time, when it is empty.

[NO NEW TESTS NEEDED] No idea how I could create a test which would have
a predictable cpu usage.

See the linked bugzilla for a reproducer.

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2066145

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-22 17:43:49 +01:00
OpenShift Merge Robot b4b8b8b537
Merge pull request #13398 from giuseppe/fix-warning-pod-create-rm
libpod: drop warning if cgroup doesn't exist
2022-03-22 15:56:45 +01:00
OpenShift Merge Robot 901066acd1
Merge pull request #13580 from vrothberg/enable-linters
enable linters
2022-03-22 15:14:38 +01:00
OpenShift Merge Robot 02aae4a658
Merge pull request #13585 from flouthoc/fix-no-healthcheck
healthcheck: stop showing wrong status when `--no-healthcheck` is set
2022-03-22 14:44:26 +01:00
Valentin Rothberg 06dd9136a2 fix a number of errcheck issues
Numerous issues remain, especially in tests/e2e.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-03-22 13:15:28 +01:00
Valentin Rothberg 6c030cd573 fix a number of `godot` issues
Still an unknown number remains but I am running out of patience.
Adding dots is not the best use of my time.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-03-22 13:04:35 +01:00
Valentin Rothberg 68b94338ba linter: enable makezero
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-03-22 13:04:35 +01:00
Valentin Rothberg 0f12b6fe55 linter: enable nilerr
A number of cases looked suspicious, so I marked them with `FIXME`s to
leave some breadcrumbs.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-03-22 13:04:35 +01:00
Valentin Rothberg bb6b69b4ab linter: enable wastedassign
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-03-22 13:04:34 +01:00
OpenShift Merge Robot 095f97100f
Merge pull request #13577 from giuseppe/drop-fedora-31-warning
libpod: drop warning for Fedora 31
2022-03-22 12:12:25 +01:00
Aditya R 6d6bdabc8c
healthcheck: stop showing wrong status when --no-healthcheck is set
Containers started with `--no-healthcheck` are configured to contain no
healthcheck and test configured as `NONE`. Podman shows wrong status as
such use cases.

Following commit fixes the faulty behavior of stauts field for
containers started with `--no-healthcheck`

Signed-off-by: Aditya R <arajan@redhat.com>
2022-03-22 12:28:55 +05:30
Giuseppe Scrivano 1b68c38262
libpod: drop warning for Fedora 31
drop a warning for runc not supporting cgroup v2 on Fedora 31.

[NO NEW TESTS NEEDED]

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-03-21 14:01:16 +01:00
Valentin Rothberg 026bd9b205 bump golangci-lint to v1.45.0
* supports Go 1.18
* disable a number of new linters
* fix minor stylecheck issues

[NO NEW TESTS NEEDED]

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-03-21 10:42:53 +01:00
OpenShift Merge Robot f8b04bf56c
Merge pull request #13552 from vrothberg/go1.18
go fmt: use go 1.18 conditional-build syntax
2022-03-18 11:24:58 +01:00
Valentin Rothberg ea08765f40 go fmt: use go 1.18 conditional-build syntax
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-03-18 09:11:53 +01:00