22803 Commits

Author SHA1 Message Date
08a8429459 libpod: avoid chowning the rundir to root in the userns
so it is possible to remove the code to make the entire directory
world accessible.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-06-21 18:01:26 +02:00
c81f075f43 libpod: do not chmod bind mounts
with the new mount API is available, the OCI runtime doesn't require
that each parent directory for a bind mount must be accessible.
Instead it is opened in the initial user namespace and passed down to
the container init process.

This requires that the kernel supports the new mount API and that the
OCI runtime uses it.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-06-21 18:01:26 +02:00
094bc673ef libpod: unlock the thread if possible
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-06-21 18:01:26 +02:00
9ffac33178 Merge pull request #23066 from Luap99/connection-setup
remote: fix incorrect CONTAINER_CONNECTION parsing
2024-06-21 13:29:10 +00:00
4b3890ccac remote: fix incorrect CONTAINER_CONNECTION parsing
When a user specifies a invalid connection in CONTAINER_CONNECTION then
podman should return a proper error saying so. Currently it ignored the
error and in rootFlags() just exited early with defining any flags. This
caused a panic then when trying to use the flags later.

In order to address this first store the connection error in the
PodmanConfig struct and not abort right away during flag setup. This is
important as the user might have specified a flag with a valid remote
connection. As such we check all flags and only when none were given we
return the connection error.

Also while at it I noticed that the default connection reported via
podman --help was wrong as it only used the old containers.conf field
for it and did not consider the podman-connections.json default.

New regression tests have been added to make sure it behaves correctly.

This fixes the problem reported in the PR #22997.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-21 14:01:22 +02:00
79f0f7707a Merge pull request #23060 from AlexanderNull/docs/pushimage-openapi
[CI:DOCS] Adds all PushImage supported paramters to openapi docs
2024-06-21 09:27:01 +00:00
64a9c73330 Merge pull request #23056 from rst0git/fix-restore-into-pod
restore: fix container restore into pod
2024-06-21 08:59:29 +00:00
95677f6eb0 Merge pull request #23059 from edsantiago/systest-timeout-bump
systests: kube: bump up a timeout
2024-06-21 08:51:14 +00:00
8be9ec7216 e2e: test container restore in pod by name
Add a test to verify that restoring a container in a Pod works when
the `container restore --pod` option is used with Pod *name* (this
functionality was previously limited to support only full Pod ID).

Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
2024-06-21 05:52:40 +01:00
c22ae53d31 docs: Adds all PushImage supported paramters to openapi docs.
Signed-off-by: Alexander Clifford <alexandersinbox@gmail.com>
2024-06-20 15:52:29 -07:00
3f785e8735 systests: kube: bump up a timeout
PR #22821 (CI speedup) was overly aggressive in one kube test.
It's flaking. Bump up timeout from 3s to 4.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-06-20 14:37:25 -06:00
298f31ba6f Merge pull request #23058 from edsantiago/bump-vms
CI VMs: bump
2024-06-20 20:26:01 +00:00
fdaef4609f Merge pull request #23029 from ygalblum/quadlet-template-unescaped
Quadlet - use specifier for unescaped values for templated container name
2024-06-20 18:47:01 +00:00
48e1efbe82 Merge pull request #23030 from Luap99/CI-cond
cirrus.yml: implement skips based on source changes
2024-06-20 18:16:46 +00:00
f6be78d2c6 Merge pull request #23053 from mariushoch/main
sqlite_state: Fix RewriteVolumeConfig
2024-06-20 17:32:45 +00:00
f134ab77bc cirrus.yml: add CI:ALL mode to force all tests
Now that we have source based skips there might be a case where we have
to run all tests. One option is to simply change a line in one of the
danger files but having something that can be set as title might be
easier for users.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-20 19:10:02 +02:00
d9183f0587 cirrus.yml: implement skips based on source changes
We do not have to test everything for each PR, we can know based on the
source if we changed (i.e. machine code) and only run the tests then.

This implements it as skip conditions, due to the nature of yaml files
we unfortunately cannot deduplicate everything, i.e. the is PR check and
danger files apply to everything but as skip is only a single yaml
string we cannot deduplicate parts of that string. If anyone knows a way
to achieve this I like to hear it.

For now I implemented this for int, system, bud and machine tests. Once
we are more comfortable with this I plan on adding it to other tests as
well.

This will replace the current _bail_if_test_can_be_skipped logic as it
covers more, marks tasks actually skipped in the github UI and works
even for the windows/macos machine tests.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-20 19:10:02 +02:00
2f680eb4b5 CI VMs: bump
Built in: https://github.com/containers/automation_images/pull/361

Main changes:
 - lots of package bumps, see link above. Most important
   is debian systemd, which should fix the XDG bug in 256-rc3
 - workaround for rawhide IMA (signed rpms) issue
 - rawhide now includes composefs

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-06-20 10:50:06 -06:00
7dc288dbed restore: fix container restore into pod
Currently, when Podman restores a container into a Pod, it always fails
with the following error:

    Error: cannot add container f96670b26e53e70f7f451191ea39a093c940c6c48b47218aeeef1396cb860042 to pod h2-pod: no such pod

This error occurs because r.state.Pod() is called in setupContainer()
with the Pod name instead of ID. This patch fixes this problem by
setting ctrConfig.Pod to pod.ID().

Reported-by: Stanislav Kosorin <stanokosorin4@gmail.com>
Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
2024-06-20 13:24:53 +01:00
a2bf49abb8 Merge pull request #23047 from containers/renovate/setuptools-70.x
chore(deps): update dependency setuptools to ~=70.1.0
2024-06-20 12:21:59 +00:00
6dd9abf9ec sqlite_state: Fix RewriteVolumeConfig
The VolumeConfig table does not have an ID column, thus
use the Name column to update it.

Fixes #23052

Signed-off-by: Marius Hoch <mail@mariushoch.de>
2024-06-20 11:39:44 +02:00
83549ba11f chore(deps): update dependency setuptools to ~=70.1.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 13:37:57 +00:00
91a5c0de2a Quadlet - use specifier for unescaped values for templated container name
The escaped version replaces - with / which creates an invalid container name
See https://github.com/containers/podman/issues/22874#issuecomment-2175559746

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-06-19 14:44:21 +03:00
b8d95a5893 Merge pull request #23024 from containers/renovate/github.com-containernetworking-plugins-1.x
Update module github.com/containernetworking/plugins to v1.5.1
2024-06-18 15:01:34 +00:00
5b62c2cc2b Merge pull request #23021 from containers/renovate/github.com-checkpoint-restore-checkpointctl-1.x
Update module github.com/checkpoint-restore/checkpointctl to v1.2.1
2024-06-18 14:58:51 +00:00
b869efae52 Merge pull request #22909 from Luap99/fast-system-test-4
test/system: speed up basic_{setup,teardown}()
2024-06-18 12:57:52 +00:00
0eaec1a2e9 cirrus: check for system test leaks in nightly
The leak check is slower (over 5mins) so we do not wnat them on PR runs
to speed system tests up. However that opens the door for someone to add
a test which forgets to do the correct cleanup themselves. This might
not cause a fatal error right away and only later when new tests would
be added. To prevent this happening the nighlty run will check leaks so
that we can fix them quickly and not notice them months/years later when
a new test is added that might trip over it.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-18 11:06:52 +02:00
4e0cd49148 test/system: check for leaks in teardown suite
At the end of all tests always check for leaks. That should make us more
robust against adding tests at the end that would leak stuff otherwise.

TODO: something seems wrong with bats when returning an error in
teardown_suite(), it prints a warning:
bats warning: Executed <NUM+1> instead of expected <NUM> tests
And also the output is formatted weirdly in this case where the podman
args are split over multiple lines.
But the test fails as expected so I don't think it is a problem.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-18 11:06:51 +02:00
81c90f51c2 test/system: speed up basic_{setup,teardown}()
While these are not really slow they still take about 100-250ms if I
time this locally. Given they are run for every test this adds up
quickly. Looking at CI logs I can see the timings for skipped
tests are all in 600ms range. So I think it is safe to assume that these
functions need to get faster.

We have over 670 test cases currently so we talk about over 400s spend
in these functions in CI. This allows for big gains.

Now overall this is a tricky trade of, while all tests should cleanup
after themselves there is no guarantee for that as such errors can be
leaked into other tests making debugging much harder. To work at least a
bit against this teardown checks if the test was successful and only
skips the podman commands bases on that. Without it a single flake could
cause all following tets to fail.

As such this commit does the proper setup once one suite start then only
after a test failed.

In order for this to work at all we have to fix all leaks first, see
previous commits. And then for the future keep a very strong eye on
this during reviews.

Also add a PODMAN_BATS_LEAK_CHECK option

By default test must cleanup themselves and to speed up CI we no longer
do any cleanup in teardown by default. However there is still many cases
where we might have to debug a leak so add a new PODMAN_BATS_LEAK_CHECK
env option that can be set and should cause teardown to fail if the test
did not cleanup properly.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-18 11:06:50 +02:00
a2352fa3ea test/system: fix up many tests that do not cleanup
All tests should cleanup themselves and not leak stuff.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-18 11:06:49 +02:00
e9c6cd1559 test/system: fix podman --authfile=nonexistent-path
Remove leaking containers and remove unessesary push/pull args. For push
it tries to push an image as argument which makes no sense and for pull
we try to pull argument as image which is also wrong.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-18 11:06:47 +02:00
f611ac9304 Update module github.com/containernetworking/plugins to v1.5.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-17 21:28:37 +00:00
afe55cded0 Merge pull request #23006 from containers/renovate/github.com-gorilla-schema-1.x
Update module github.com/gorilla/schema to v1.4.0
2024-06-17 19:38:02 +00:00
043ce618bc Update module github.com/checkpoint-restore/checkpointctl to v1.2.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-17 19:36:33 +00:00
86bab1bb74 Merge pull request #23005 from containers/renovate/github.com-spf13-cobra-1.x
Update module github.com/spf13/cobra to v1.8.1
2024-06-17 19:35:16 +00:00
f4aa71e730 Update module github.com/spf13/cobra to v1.8.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-17 18:07:20 +00:00
0627fce798 Update module github.com/gorilla/schema to v1.4.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-17 18:05:54 +00:00
67bbbb9e94 Merge pull request #23017 from Luap99/wsl-error
pkg/machine/wsl: wrap command errors
2024-06-17 17:34:17 +00:00
5c1e5cd026 pkg/machine/wsl: force terminate wsl instance
We do a soft stop via systemd to allow graceful shutdown behavior.
Hoewever for unknown reason we are hitting such a case in CI right now.
Regardless of the CI issue we should always to the hard terminate in
such case so only log the timeout as warning.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-17 17:52:01 +02:00
bd906cb314 pkg/machine/wsl: wrap command errors
First of some commands ignored cmd.Wait() error which means it was
impossible to notice any command errors. And others only returned
the wait error as it which when a command fails is just
`exit status <code>` which is not helpful at all.

This commit should add proper error wrapping with stderr to get useful
strings back hopefully.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-17 17:46:23 +02:00
aa2bbeea48 Merge pull request #23010 from ygalblum/quadlet-doc-relative-path
[CI:DOCS] Quadlet - add note about relative path resolution
2024-06-17 15:30:58 +00:00
dca94be028 [CI:DOCS] Quadlet - add note about relative path resolution
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-06-17 17:32:34 +03:00
f269485295 Merge pull request #23013 from Luap99/fix-CI
CI: do not install python packages at runtime
2024-06-17 08:48:16 -04:00
c20767120f CI: do not install python packages at runtime
No idea why we need them, it passes without them so I just remove them.
Currently CI is broken as this install is failing on rawhide for some
reason. I don't know what changed there but this is working and unblocks
CI so I like to get this in.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-06-17 13:03:25 +02:00
1d339e4ae3 Merge pull request #22999 from cevich/candidate_release
[skip-ci] Release workflow: Include candidate descriptor
2024-06-14 16:52:34 +00:00
54edf3d8ee Release workflow: Include candidate descriptor
Assist humans by indicating clearly whe a release announcement is
pertaining to a candidate.  Otherwise, it's possible someone may
overlook the `-rcX` version suffix.

Also fix a quoting problem missed in testing.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-06-13 17:22:03 -04:00
26370c95b7 Merge pull request #22988 from cevich/send_release_mail
[skip-ci] GHA: Send release notification mail
2024-06-13 13:30:29 -04:00
19989380b8 Minor: Fix indentation in GHA release workflow
Simply indent list items two spaces to the right WRT their parent.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-06-13 10:49:37 -04:00
82973c38e4 GHA: Send release notification mail
Rather than manually crafting what ends up being nearly identical
release e-mails, do it automatically whenever a release is created.

Note: At the time of this commit, there is a possible race condition
with the `mac-pkg.yml` workflow, since it runs in parallel.  It could
fail, or fail to complete prior to the e-mail content being generated.
This should be unlikely, if `release-artifacts.yml` goes through and
compiles every artifact, but it's not guaranteed.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-06-13 10:48:14 -04:00
ad56dc7e2b GHA: Validate release version number
There's a reasonable chance this workflow will be triggered by a human
(via `workflow_dispatch``), and a non-zero chance with an invalid
version number for which a release should not be created.  Detect this
and provide a way for the operator to debug the source of the error.

Also fix some whitespace inconsistencies.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-06-13 10:47:26 -04:00