Commit graph

23873 commits

Author SHA1 Message Date
openshift-merge-bot[bot]
87dcf9d9d2
Merge pull request #24062 from ygalblum/quadlet-restore-dir-order
Quadlet - make sure the order of the UnitsDir is deterministic
2024-09-27 12:02:24 +00:00
openshift-merge-bot[bot]
13e4b084eb
Merge pull request #24083 from Luap99/packit-centos
packit: disable Centos Stream/fedora ELN teasks
2024-09-27 10:48:08 +00:00
openshift-merge-bot[bot]
08cbd38994
Merge pull request #24073 from edsantiago/oh-i-give-up
System tests: set a default XDG_RUNTIME_DIR
2024-09-26 18:45:39 +00:00
Ygal Blum
ebbec00b0d Quadlet - make sure the order of the UnitsDir is deterministic
Change getUnitDirs to maintain a slice in addition to the map and return the slice
Add helper functions to make the code more readable
Adjust unit tests
Restore system test

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-09-26 10:57:47 -04:00
Paul Holzinger
f47abd8e1e
packit: disable Centos Stream/fedora ELN teasks
The go version there is only go 1.22.5 but we need go 1.22.6 as of
https://github.com/containers/podman/pull/24054

It is not clear to me how to best monitor the repos there to see when
they get the update. And then there is the fear that podman keeps
updating faster then these envs which makes testing there immposible[1]

[1] https://github.com/containers/image/pull/2550#discussion_r1743588062

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-26 16:49:48 +02:00
Paul Holzinger
5de7b7c3f3
libpod: remove shutdown.Unregister()
It is never used and needed so let's just remove some dead code.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-26 16:20:56 +02:00
Paul Holzinger
0bbef4b830
libpod: rework shutdown handler flow
Currently podman run -d can exit 0 if we send SIGTERM during startup
even though the contianer was never started. That just doesn't make any
sense is horribly confusing for a external job manager like systemd.

The original motivation was to exit 0 for the podman.service in commit
ca7376bb11. That does make sense but it should only do so for the
service and only if the server did indeed gracefully shutdown.

So we rework how the exit logic works, do not let the handler perform
the exit. Instead the shutdown package does the exit after all handlers
are run, this solves the issue of ordering. Then we default to exit code
1 like we did before and allow the service exit handler to overwrite the
exit code 0 in case of a graceful shutdown.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-26 16:14:30 +02:00
Paul Holzinger
2de82d523b
libpod: ensure we are not killed during netns creation
When we are killed during netns setup it will leak the netns path as it
was not commited in the db. This is rather common if you run systemctl
stop on a podman systemd unit. Of course we cannot protect against
SIGKILL but in systemd case we get SIGTERM and we really should not exit
in a critical section like this.

Fixes #24044

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-26 15:39:20 +02:00
openshift-merge-bot[bot]
4e38381d37
Merge pull request #23900 from Honny1/healthcheck-log
HealthCheck log output options
2024-09-26 11:55:55 +00:00
openshift-merge-bot[bot]
bf30466698
Merge pull request #24076 from containers/renovate/github.com-moby-sys-capability-0.x
Update module github.com/moby/sys/capability to v0.3.0
2024-09-26 11:42:08 +00:00
openshift-merge-bot[bot]
76a932189d
Merge pull request #24064 from dgibson/no-bind-inside
test/system: For pasta port forwarding tests don't bind socat server
2024-09-26 08:21:21 +00:00
renovate[bot]
27838b26d6
Update module github.com/moby/sys/capability to v0.3.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-25 22:47:34 +00:00
Daniel Rudolf
6e4ef2c54d
Update documentation of --no-hosts, --hostname, and --name CLI options
Update the docs to properly cross-reference the `--add-host` option.

Signed-off-by: Daniel Rudolf <github.com@daniel-rudolf.de>
2024-09-25 21:42:56 +02:00
Daniel Rudolf
c67d8baeb6
Update documentation of --add-host CLI option
Document the special *host-gateway* flag introduced with #19152, mention the special `host.containers.internal` and `host.docker.internal` hostnames, and clarify the option's usage in general.

Signed-off-by: Daniel Rudolf <github.com@daniel-rudolf.de>
2024-09-25 21:35:53 +02:00
Ed Santiago
70c131ed68 System tests: set a default XDG_RUNTIME_DIR
Yield to reality: if $XDG_RUNTIME_DIR is unset, assume a
reasonable default (rootless only). This clears up a
common failure in Fedora gating tests, and will probably
prevent future time wasters.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-09-25 12:45:17 -06:00
Jake Correnti
e9b8564690 Modify machine "Remove machine" test
Modifies the "Remove machine" test to verify the system connections are
handled properly on removal.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-09-25 10:28:54 -04:00
openshift-merge-bot[bot]
8cc4781f28
Merge pull request #24065 from eriksjolund/troubleshooting_adjust_homedir
troubleshooting: adjust home path in tip 44
2024-09-25 13:49:12 +00:00
Ed Santiago
73cbc13190 CORS system test: clean up
Primary motivator: 'curl -v' format changes in f42

Drive-bys:
 * 127.0.0.1, not localhost
 * use wait_for_port, not sleep
 * show curl commands and their output, to ease debugging failures
 * better failure assertions

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-09-25 07:46:07 -06:00
Jan Rodák
de856dab99
Add --health-max-log-count, --health-max-log-size, --health-log-destination flags
These flags can affect the output of the HealtCheck log. Currently, when a container is configured with HealthCheck, the output from the HealthCheck command is only logged to the container status file, which is accessible via `podman inspect`.
It is also limited to the last five executions and the first 500 characters per execution.

This makes debugging past problems very difficult, since the only information available about the failure of the HealthCheck command is the generic `healthcheck service failed` record.

- The `--health-log-destination` flag sets the destination of the HealthCheck log.
  - `none`: (default behavior) `HealthCheckResults` are stored in overlay containers. (For example: `$runroot/healthcheck.log`)
  - `directory`: creates a log file named `<container-ID>-healthcheck.log` with JSON `HealthCheckResults` in the specified directory.
  - `events_logger`: The log will be written with logging mechanism set by events_loggeri. It also saves the log to a default directory, for performance on a system with a large number of logs.

- The `--health-max-log-count` flag sets the maximum number of attempts in the HealthCheck log file.
  - A value of `0` indicates an infinite number of attempts in the log file.
  - The default value is `5` attempts in the log file.
- The `--health-max-log-size` flag sets the maximum length of the log stored.
  - A value of `0` indicates an infinite log length.
  - The default value is `500` log characters.

Add --health-max-log-count flag

Signed-off-by: Jan Rodák <hony.com@seznam.cz>

Add --health-max-log-size flag

Signed-off-by: Jan Rodák <hony.com@seznam.cz>

Add --health-log-destination flag

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2024-09-25 14:01:35 +02:00
openshift-merge-bot[bot]
1ae4b047f6
Merge pull request #24054 from giuseppe/vendor-image-storage-24-9-2024
vendor: update containers/{image,storage}
2024-09-25 08:21:58 +00:00
Erik Sjölund
7fbc6d9370 troubleshooting: adjust home path in tip 44
Modify the home dir path in troubleshooting tip 44
to prevent files from being accidentally removed.

userdel with force argument tries to remove home dir path "/"
according to
https://github.com/shadow-maint/shadow/issues/1050

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2024-09-25 08:10:57 +02:00
David Gibson
1f2658e0ef test/system: For pasta port forwarding tests don't bind socat server
The various pasta port forwarding tests run a socat server inside a
container, then connect to it from a socat client on the host.  Currently
we have the server bind to the same specific address within the container
as we connect to on the host.

That's not quite what we want.  For "tap" tests where the traffic goes over
pasta's L2 link to the container it's fine, though unnecessary.  For
"loopback" tests where traffic is forwarded by pasta at the L4 socket
level, however, it's not quite right.  In this case the address used is
either 127.0.0.1 or ::.  That's correct and as needed for the host side
address we're connecting to.  However on the container side, this only
works because of an odd and arguably undesirable behaviour of pasta: we use
the fact that we have an L4 socket within the container to make such
"spliced" L4 connections appear as if they come from loopback within the
container.  A container will generally expect it's loopback address to be
only accessible from within the container, and this odd behaviour may be
changed in pasta in future.

In any case, the binding of the container side server is unnecessary, so
simply remove it.

Link: https://github.com/containers/podman/issues/24045

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2024-09-25 14:47:46 +10:00
Jake Correnti
24deec835c Update connection on removal
Modify `RemoveConnections` to verify the new default system connection's
rootful state matches the rootful-ness of the podman machine it is associated
with.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-09-24 15:46:02 -04:00
Jake Correnti
c709be3a29 Simplify RemoveConnections
Takes the code inside the closure in the function `RemoveConnections`
and makes it a separate function to increase readability.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-09-24 15:45:59 -04:00
Jake Correnti
9febd2c27a Move DefaultMachineName to pkg/machine/define
Moves the `DefaultMachineName` constant out of `pkg/machine` and into
`pkg/machine/define`.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-09-24 15:36:14 -04:00
Giuseppe Scrivano
7f29233a3f
vendor: update containers/image
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-09-24 20:28:31 +02:00
Giuseppe Scrivano
c81c77109b
vendor: update containers/storage
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-09-24 20:28:30 +02:00
openshift-merge-bot[bot]
af4b061f53
Merge pull request #23487 from Luap99/ebpf
add epbf program to trace podman cleanup errors in CI
2024-09-24 15:48:12 +00:00
openshift-merge-bot[bot]
66139fc266
Merge pull request #24056 from edsantiago/skip-quadlet-flake
CI: skip the flaking quadlet test (temporary)
2024-09-24 14:31:15 +00:00
openshift-merge-bot[bot]
f9f72f5aad
Merge pull request #24048 from edsantiago/safename-250
CI: make systemd tests parallel-safe (*)
2024-09-24 13:32:19 +00:00
Ed Santiago
fd4c63838b CI: skip the flaking quadlet test
Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-09-24 07:18:50 -06:00
Ed Santiago
faf4604883 CI: make systemd tests parallel-safe (*)
Mostly just switch to safename. Rewrite setup() to guarantee
unique service file names, atomically created.

* IMPORTANT NOTE: enabling parallelization on these tests
  triggers #24010 ("fragment file" flake), but only on my
  f40 laptop. I have never seen the flake in Cirrus despite
  many many runs in #23275. I am submitting this for review
  and merging because even though _something_ is broken,
  this breakage is unlikely to affect our CI.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-09-24 06:13:50 -06:00
openshift-merge-bot[bot]
bb6b2e9e85
Merge pull request #24046 from edsantiago/parallelize-035
CI: parallelize logs test as much as possible
2024-09-24 11:55:49 +00:00
Paul Holzinger
09ba5db035
CI: run and collect cleanup tracer logs
In order to get better debug data for cleanup flakes. The argv is
printed with 0 bytes so replace them with spaces to make the log
readable for humans.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-24 12:47:04 +02:00
Paul Holzinger
0b59f67c3a
add epbf program to trace podman cleanup errors
Add a new program based on bpftrace[1] to trace all podman processes
with arguments and exit code/signals. Additionally this captures stderr
from all podman container cleanup processes spawned by conmon which
otherwise go to /dev/null and are never seen in any CI logs.
Hopefull this allows us to debug strange network cleanup error seen in
CI, my plan is to add this to the cirrus setup and upload the logs so we
can check them when the flakes happen.

[1] https://github.com/bpftrace/bpftrace

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-09-24 12:47:03 +02:00
Ed Santiago
4be6bf2270 CI: parallelize logs test as much as possible
Any test that uses --events-backend=file cannot be run in parallel
due to #23750. This seems to be a hard block, unfixable.

All other tests, enable ci:parallel.

And, bring in timing fixes #23600. Thanks, @Honny1!

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-09-23 13:46:00 -06:00
openshift-merge-bot[bot]
edcee32116
Merge pull request #24041 from edsantiago/610-search-local
CI: format test: use local registry if available
2024-09-23 17:33:38 +00:00
openshift-merge-bot[bot]
b98fffd36a
Merge pull request #23998 from edsantiago/safename-700
CI: make 700-play parallel-safe
2024-09-23 17:22:48 +00:00
openshift-merge-bot[bot]
3fb9619298
Merge pull request #23336 from dgibson/pasta-dns
Fix several reliability problems with pasta DNS handling tests
2024-09-23 16:02:53 +00:00
Ed Santiago
600634c62c CI: format test: use local registry if available
The format test flakes when quay is down, because we've
been doing 'podman search $IMAGE', which is a quay image.

Solution: check if local registry is running, and use it.
We don't need a real image.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-09-23 07:48:35 -06:00
Ed Santiago
d92f2d39ee CI: make 700-play parallel-safe
(where possible. Not all tests are parallelizable).

And, refactor two complicated tests into one. This one
is hard to review, sorry.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-09-23 05:27:45 -06:00
openshift-merge-bot[bot]
ff5b82fcfa
Merge pull request #24025 from containers/renovate/github.com-docker-docker-27.x
Update module github.com/docker/docker to v27.3.1+incompatible
2024-09-23 09:12:15 +00:00
openshift-merge-bot[bot]
dc4bbe2b65
Merge pull request #24036 from bgilbert/unable
docs: Fix missing negation
2024-09-23 09:06:46 +00:00
openshift-merge-bot[bot]
7aedb541d5
Merge pull request #24018 from ygalblum/allow-symlinks
Quadlet - add full support for Symlinks
2024-09-23 06:49:12 +00:00
openshift-merge-bot[bot]
838e6bdffc
Merge pull request #24034 from ndimiduk/patch-1
bin/docker support warning message suppression from user config dir
2024-09-23 06:27:12 +00:00
Benjamin Gilbert
62e5eb4734 docs: Fix missing negation
Fixes: 32c2cea0f9 ("Remove future tense from man pages")
Signed-off-by: Benjamin Gilbert <bgilbert@backtick.net>
2024-09-22 22:19:38 -07:00
Nick Dimiduk
6ef0288ca6
bin/docker support warning message suppression from user config dir
The `bin/docker` command should also honor the presence of `$XDG_CONFIG_HOME/containers/nodocker` when considering whether it should print the warning message.

Signed-off-by: Nick Dimiduk <ndimiduk@gmail.com>
2024-09-22 15:24:14 +02:00
openshift-merge-bot[bot]
186a2b8d49
Merge pull request #24021 from ruihe774/ps-external-doc
docs: remove usage of deprecated `--storage` in the doc of podman-build
2024-09-20 22:29:35 +00:00
renovate[bot]
6d4006b123
Update module github.com/docker/docker to v27.3.1+incompatible
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 19:56:39 +00:00
Ygal Blum
133ea31ffb Quadlet - add full support for Symlinks
Use os.ReadDir recursively instead of filepath.WalkDir
Use map instead of list to easily find looped Symlinks
Update existing tests and add a more elaborate one
Update the man page

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-09-20 11:11:03 -04:00