Commit Graph

7017 Commits

Author SHA1 Message Date
openshift-merge-bot[bot]
c053194921 Merge pull request #23533 from edsantiago/fix-containerport-flake
CI: e2e: serialize root containerPort tests
2024-08-08 09:57:57 +00:00
Paul Holzinger
4620e91f86 podman container cleanup: ignore common errors
The podman container cleanup command is not really intended for human
use. Instead each conmon will spawn this command after the container
exit to make sure we can cleanup resources asynchronously. However this
command will always race against other foreground process such as podman
rm -fa. Therefore it is possible that the ctr was already removed and we
should not log errors in this case.

While these errors are normally not seen as the command is int he
background you can see it if you enable syslog logging and then they
just spam the log with useless errors so just ignore them.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-07 17:00:47 +02:00
Ygal Blum
795851edd3 Quadlet - Allow the user to override the default service name
Add support for the ServiceName key for all unit types
Extend the PodInfo struct into UnitInfo to consolidate all prepopulated data into a single map
Use the NodesInfo map instead of the resourceName
Update the UnitInfo in the convert function instead of returning it
No need to replace extension anymore just remove it
All e2e tests with dependencies on other Quadlet files moved to a separate section
Add the capability of overriding the service name in the test
Add e2e tests for the new functionality
Adjust integration tests
Update the MAN page

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-08-07 17:50:49 +03:00
Ed Santiago
1a2e1eb46e CI: e2e: serialize root containerPort tests
Two tests, both check port 80 on host, one wants it live,
the other wants it blocked. Prevent them from running
concurrently.

Fixes: #23470

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-08-07 05:34:12 -06:00
openshift-merge-bot[bot]
4e788bc611 Merge pull request #23532 from containers/renovate/golang.org-x-tools-0.x
fix(deps): update module golang.org/x/tools to v0.24.0
2024-08-07 10:11:52 +00:00
Daniel J Walsh
a06a7d7ba8 Should not force conversion of manifest type to DockerV2ListMediaType
Fixes: https://github.com/containers/podman/issues/23163

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-08-07 06:07:46 -04:00
openshift-merge-bot[bot]
61f7db5e7a Merge pull request #23527 from edsantiago/safename-012
CI: manifest system tests: make parallel-safe
2024-08-07 08:25:10 +00:00
openshift-merge-bot[bot]
4109ffa649 Merge pull request #23529 from edsantiago/safename-060
CI: mount system test: make parallel-safe
2024-08-07 08:19:31 +00:00
openshift-merge-bot[bot]
9e8c4c4993 Merge pull request #23524 from mheon/fix_23515
Create volume path before state initialization
2024-08-07 08:16:54 +00:00
renovate[bot]
2038d88680 fix(deps): update module golang.org/x/tools to v0.24.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 03:20:04 +00:00
Ed Santiago
f99c7ead92 CI: mount system test: parallelize
Use safename for containers, volumes, images.

Build a temporary scratch image for podman image mount, so
we can safely mount/umount it (instead of $IMAGE) without
risk of other parallel tests umounting it.

Fixed some oopsies ("$vol1" is empty string, so, NOP test)

And... an experiment. I'm leaving in my 'ci:parallel' tags
and notes, so I don't have to carry them in #23275. This
is harmless, basically just noisy comments. The drawback
is, if for some reason #23275 does not pan out, I'll have
to go back and remove those tags. Right now I'm feeling
pretty comfortable about this parallelization approach tho.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-08-06 13:28:47 -06:00
Ed Santiago
f9b67cea57 CI: manifest system tests: make parallel-safe
Use safename instead of hardcoded "test"

Start registry once, in setup_file(), instead of requiring
individual tests to do so.

Add explicit --authfile arg to a bunch of places that now need it

Minor cleanup and improvements in test descriptions. I may have
gotten a little carried away here, but if this test ever fails
these additions will make someone's life much easier.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-08-06 13:07:10 -06:00
Matt Heon
eb7ce80cf9 Create volume path before state initialization
Strictly speaking we don't need the path yet, but it existing
prevents a lot of strangeness in our path-checking logic to
validate the current Podman configuration, as it was the only
path that might not exist this early in init.

Fixes #23515

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-08-06 13:42:09 -04:00
Paul Holzinger
1912dd4bf6 test/e2e: work around for pasta issue
Use network slirp4netns for the registry container to work around a
pasta regression (#23517). This should be revert once it is fixed in
pasta and included in our CI images.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-06 13:16:34 +02:00
Paul Holzinger
71bcd25ab6 test/e2e: fix missing exit code checks
Both push commands didn't check the exit code so make sure they actually
work.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-08-06 13:16:34 +02:00
Ed Santiago
bfb42b3b15 CI: completion system test: use safename
Ongoing efforts to make system tests parallel-safe

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-08-05 05:09:19 -06:00
Giuseppe Scrivano
3ae1568933 libpod: fix volume copyup with idmap
if idmap is specified for a volume, reverse the mappings when copying
up from the container, so that the original permissions are maintained.

Closes: https://github.com/containers/podman/issues/23467

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-08-01 22:49:27 +02:00
Ed Santiago
83e90a2f5b System tests: leak_test: readable output
BATS teardown logs are unreadable, making it almost impossible
to see tiny "Leaked this-or-that" messages.

Solution: new _run_podman_quiet() helper, replaces run_podman
in a small number of cases within teardown. Clunky, and
duplicative, sorry.

New helper for leak_check, basically spits out warnings (and
bumps error count) if it sees any output whatsoever from
individual "podman XXX ls" commands.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-08-01 05:39:50 -06:00
openshift-merge-bot[bot]
7c4b1f7aa7 Merge pull request #23431 from edsantiago/clean-up-stray-external
CI: kube test: fix broken external-storage test
2024-08-01 11:30:00 +00:00
openshift-merge-bot[bot]
803ef5c16f Merge pull request #23384 from edsantiago/root-namespace
CI: enable root user namespaces
2024-08-01 10:32:16 +00:00
Ed Santiago
84f57e4ba0 WIP: Fixes for vendoring Buildah
This commit was automatically cherry-picked
by buildah-vendor-treadmill v0.3
from the buildah vendor treadmill PR, #13808

/vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
> The git commit message from that PR is below. Please review it,
> edit as necessary, then remove this comment block.
\^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Changes since 2024-05-21:

  * document --compat-volumes
  * Fix conflict caused by Ed's local-registry PR in buildah

Signed-off-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: tomsweeneyredhat <tsweeney@redhat.com>
2024-07-30 18:26:21 -04:00
openshift-merge-bot[bot]
d38268062a Merge pull request #23442 from legobeat/compose-warning-logs-env-conf
fix: disable compose_warning_logs if PODMAN_COMPOSE_WARNING_LOGS=false
2024-07-30 14:28:00 +00:00
openshift-merge-bot[bot]
aa077cdcaa Merge pull request #23446 from Luap99/bind-ports
libpod: bind ports before network setup
2024-07-30 14:19:43 +00:00
Ygal Blum
7d9c1a2c53 Quadlet test - Split between success, warning and error cases
Split the table to three based on the expected outcome
Use helper functions to reduce the amount of parameter required in each entry
Remove the service name override code

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-07-30 16:33:14 +03:00
openshift-merge-bot[bot]
95c78b2716 Merge pull request #23444 from rhatdan/quadlet
Use new syntax for selinux options in quadlet
2024-07-30 13:16:28 +00:00
openshift-merge-bot[bot]
b4d0c95f4e Merge pull request #23427 from ygalblum/quadlet-pod-service-name
Allow setting the service name of Quadlet .pod units
2024-07-30 12:54:29 +00:00
Paul Holzinger
77081df8cd libpod: bind ports before network setup
We bind ports to ensure there are no conflicts and we leak them into
conmon to keep them open. However we bound the ports after the network
was set up so it was possible for a second network setup to overwrite
the firewall configs of a previous container as it failed only later
when binding the port. As such we must ensure we bind before the network
is set up.

This is not so simple because we still have to take care of
PostConfigureNetNS bool in which case the network set up happens after
we launch conmon. Thus we end up with two different conditions.

Also it is possible that we "leak" the ports that are set on the
container until the garbage collector will close them. This is not
perfect but the alternative is adding special error handling on each
function exit after prepare until we start conmon which is a lot of work
to do correctly.

Fixes https://issues.redhat.com/browse/RHEL-50746

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-07-30 14:39:08 +02:00
Petter Mikkelsen
cfac059d14 Disable compose-warning-logs if PODMAN_COMPOSE_WARNING_LOGS=false
Fixes: e62c928642 ("Make podman-compose refer to podman-compose(1) when using an external provider")

- test: add coverage for PODMAN_COMPOSE_WARNING_LOGS

Signed-off-by: Petter Mikkelsen <43xhyr9m@anonaddy.me>
2024-07-30 12:06:11 +00:00
Daniel J Walsh
1c46686a41 Use new syntax for selinux options in quadlet
Fixes: https://github.com/containers/podman/issues/23432

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-07-30 06:15:45 -04:00
openshift-merge-bot[bot]
2316d914b5 Merge pull request #23428 from Luap99/config-clone
pkg/api: do not leak config pointers into specgen
2024-07-29 19:09:01 +00:00
Ed Santiago
396961069c CI: kube test: fix broken external-storage test
I broke the kube external storage test in the course of my
safename PR: _write_test_yaml() with no command generated
a pod that did not trigger the conditions required for
this test.

Solution: run a container (top). Add new checks to prevent
this gap from happening again.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-29 12:23:35 -06:00
renovate[bot]
8b5b9d0bb5 Update dependency setuptools to v72
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-29 15:45:43 +00:00
openshift-merge-bot[bot]
c7f00b6b5b Merge pull request #23301 from ypu/automount-volume
test/system: Add a test case for automount with multi images
2024-07-29 14:22:40 +00:00
Paul Holzinger
1b91df012d pkg/api: do not leak config pointers into specgen
The value of the pointer might be changed while creating the container
causing unexpected side effects.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-07-29 15:12:55 +02:00
Ygal Blum
f3a86266e6 Quadlet - Allow the user to set the service name for .pod files
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-07-29 16:11:19 +03:00
Ygal Blum
1c4fbe7965 Quadlet tests - allow overriding the expected service name
Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2024-07-29 16:11:19 +03:00
Ed Santiago
7bb3b83c17 CI: enable root user namespaces
Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-27 23:23:29 +02:00
renovate[bot]
1d23f3ff11 fix(deps): update module github.com/onsi/ginkgo/v2 to v2.19.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-26 19:48:09 +00:00
Yiqiao Pu
a18bd3e9c0 Add test steps for automount with multi images
These test steps check the automount feature with multi images for
following item:
  1. multi images can be auotmounted with yaml file.
  2. if there are same path exist in the images, the last one
should trumps.
  3. the volume is mounted readonly in the container.
  4. the volumes are only mounted in the specific container, but
not the whole pods.

Signed-off-by: Yiqiao Pu <ypu@redhat.com>
2024-07-26 15:56:33 +08:00
Ed Santiago
25fffdb74f CI: cp tests: use safename
Continuing efforts to make system tests parallel-safe

Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-25 11:55:38 -06:00
Ed Santiago
fd0ff9060f CI: 700-play: fix a leaked non-safename
Signed-off-by: Ed Santiago <santiago@redhat.com>
2024-07-25 05:49:42 -06:00
openshift-merge-bot[bot]
85358aed81 Merge pull request #23379 from mtrmac/chunked-tests
Prepare tests for better reuse with zstd:chunked pulls
2024-07-24 19:53:52 +00:00
openshift-merge-bot[bot]
443b04ba00 Merge pull request #23274 from giuseppe/no-artifacts-composefs
test: disable artifacts cache with composefs
2024-07-24 18:04:37 +00:00
openshift-merge-bot[bot]
1da89dd180 Merge pull request #23249 from giuseppe/play-kube-userns-fixes
kube generate/play restores the user namespace configuration
2024-07-24 17:34:59 +00:00
Giuseppe Scrivano
d9c2806461 test: check that kube generate/play restores the userns
validate that a "podman generate" and "podman play" cycle restores the
specified user namespace.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-07-24 17:36:38 +02:00
Giuseppe Scrivano
fef125c7b1 test: disable artifacts cache with composefs
layers restored from a tarball won't be converted to composefs so
disable the cache when using composefs.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-07-24 17:16:35 +02:00
Giuseppe Scrivano
8403f4c33f test: fix podman pull tests
the condition is based on the fact that podman save|podman load
doesn't recreate the same digest, thus it would fail if the image in
the additional store was pulled with a simple "podman pull".

The same sequence of commands would fail using podman manually after a
"podman pull alpine".

Ignore the cache and use only the images that were pulled in the main
store.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-07-24 17:16:35 +02:00
Paul Holzinger
2e20681f05 test/system: fix borken pasta interface name checks
The tests didn't check anything actually because default_ifname requires
an ip version argument to work. Thus pasta_iface was empty, add new
checks to prevent this kind of error again.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-07-24 14:56:30 +02:00
Paul Holzinger
da3edce4e6 test/system: fix bridge host.containers.internal test
The test assumes that if more than 1 ip on the host we should be able to
set host.containers.internal. This however is not how the logic works in
the code. What it actually does is to check all ips in the
rootless-netns and then it knows that it cannot use any of these ips.
This includes any podman bridge ips.

You can reproduce the error when you have only one ipv4 on the host then
run a container as root in the background and run the test:
hack/bats --rootless 505:host.containers.internal

So the failure here was that there was already a podman container
running as root on the default bridge thus the test saw 2 ips but then
the rootless run also uses the same subnet for its bridge and the code
knew that ip would not work either. I could have made another special
condition in test but the better way to work around it is to create a
new network. A new network will make sure there are no conflicting
subnets assigned so the test will pass.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-07-24 14:52:53 +02:00
openshift-merge-bot[bot]
c804f10686 Merge pull request #23378 from edsantiago/systest-fixes
CI: system tests: instrument to allow failure analysis
2024-07-24 08:29:49 +00:00