Commit graph

3853 commits

Author SHA1 Message Date
Daniel J Walsh
ff72a48a66 Make sure tests are cleaned up when they complete
Fixes: https://github.com/containers/podman/issues/13789

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-06-14 13:21:16 -04:00
Valentin Rothberg
54d1121c0e sdnotify: send MAINPID only once
Send the main PID only once.  Previously, `(*Container).start()` and
the conmon handler sent them ~simultaneously and went into a race.

I noticed the issue while debugging a WIP PR.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-06-14 13:18:52 -04:00
Giuseppe Scrivano
2ac61ebfee test: update fedora toolbox image
f32 is already EOL.  Let's use the latest version.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-14 13:16:21 -04:00
Giuseppe Scrivano
a554ff48eb test: simplify cleanup code
do not try to first stop and then rm but combine the two operations in
a single command.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-14 13:15:19 -04:00
Paul Holzinger
4cc2ce0898 fix broken CI test
Commit b58e7e7f11 was not fully rebased before merging and is now
breaking CI because commit 69c479b16e made the underlying error
visible. Using journald inside the container tests is not supported.

Fixes #14162

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-14 13:10:33 -04:00
cdoern
8a7e280945 play kube log tag handling
currently tags cause a panic due to an uninitialized map. Initialize the map
and add parsing to make sure we are only tagging with journald

resolves #13356

Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2022-06-14 13:08:53 -04:00
Valentin Rothberg
1021afb6b0 fix compat image resolution
Fix a bug in the resolution of images in the Docker compat API.
When looking up an image by a short name, the name may match
an image that does not live on Docker Hub.  The resolved name
should be used for normalization instead of the input name to
make sure that `busybox` can resolve to `registry.com/busybox`
if present in the local storage.

Fixes: #14291
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-24 07:42:37 +00:00
Valentin Rothberg
fe29196ba8 [BZ #2083997] pod: build pause image in custom user NS
Use the host UID and host GID mapping when building the local pause
image for a Pod with a custom mapping.  Otherwise, the mappings are off
and the build fails. Propagating the mapping to the build container is
not needed since the pause image ships merely a copied `catatonit` from
the host.

Backport-of: commit c45d51899a
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2083997
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-18 08:52:09 +02:00
Giuseppe Scrivano
8e3a991ff6 test: fix "podman search format json"
the alpine image used previously returns a description that contains
'...':

$ podman search --format json alpine | fgrep ...\"\,
        "Description": "alpine 3.7 with bash, perl, gzip, wget...",

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-05-09 18:04:39 +00:00
cdoern
a8b55a3b9f pass networks to container clone
since the network config is a string map, json.unmarshal does not recognize
the config and spec as the same entity, need to map this option manually

resolves #13713

Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2022-05-05 16:02:00 -04:00
Niall Crowe
6d1d6cc0b2 play kube default log driver
The default log driver is not used when using play kube
without --log-driver. The LogDriver function needs to
be called in order to use the default log driver.

fixes #13781
Signed-off-by: Niall Crowe <nicrowe@redhat.com>
2022-05-05 15:43:31 -04:00
Daniel J Walsh
fbab06796a
Vendor in containers/buildah@v1.26.1
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-05 13:52:09 -04:00
Chris Evich
ee4e0aa43e
Temporarily skip netavark/aardvark e2e test
Ref: https://github.com/containers/podman/issues/13931

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-05-05 13:50:07 -04:00
OpenShift Merge Robot
8081d921b2
Merge pull request #14119 from openshift-cherrypick-robot/cherry-pick-14037-to-v4.1
[v4.1]  Report correct RemoteURI
2022-05-05 04:44:35 -04:00
Daniel J Walsh
6ea122f6e0 Report correct RemoteURI
Rather than assuming a filesystem path, the API service URI is recorded
in the libpod runtime configuration and then reported as requested.

Note: All schemes other than "unix" are hard-coded to report URI exists.

Fixes #12023

Signed-off-by: Jhon Honce <jhonce@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-04 18:59:05 +00:00
Ashley Cui
d3f406e9f6 podman system reset removed machines incorrectly
podman system reset did not clean up machines fully, leaving some config
files, and breaking machines. Now it removes all machines files fully.

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-05-04 18:06:23 +00:00
Jhon Honce
a21e112364 Add podman machine events
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2022-05-04 13:42:38 +00:00
Paul Holzinger
95633146e0 libpod: host netns keep same /etc/resolv.conf
When a container is run in the host network namespace we have to keep
the same resolv.conf content and not use the systemd-resolve detection
logic.

But also make sure we still allow --dns options.

Fixes #14055

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-03 13:45:35 -04:00
Paul Holzinger
1cdf18a86b fix incorrect permissions for /etc/resolv.conf in userns
The files /etc/hosts, /etc/hostname and /etc/resolv.conf should always
be owned by the root user in the container. This worked correct for
/etc/hostname and /etc/hosts but not for /etc/resolv.conf.

A container run with --userns keep-id would have the reolv.conf file
owned by the current container user which is wrong.

Consolidate some common code in a new helper function to make the code more
cleaner.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-03 13:45:29 -04:00
Paul Holzinger
c441a1756b fix broken hooks-dir test
The test has been broken since it was added 4 years ago. Instead of
using hardcoded paths we should use tmp files.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-03 13:44:39 -04:00
Paul Holzinger
fb14171cba enable errcheck linter
The errcheck linter makes sure that errors are always check and not
ignored by accident. It spotted a lot of unchecked errors, mostly in the
tests but also some real problem in the code.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-03 13:44:33 -04:00
Daniel J Walsh
66500b82a6 Report properly whether pod shares host network
Fixes: https://github.com/containers/podman/issues/14028

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-03 13:39:17 -04:00
Ed Santiago
9f6131e9c0 Three manual fixes
Two for this error:

    invalid indirect of pod.Spec.DNSConfig.Options[0]

...and one for a gofmt error (spaces).

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-05-03 13:38:26 -04:00
Ed Santiago
ecc39b5958 Ginkgo: use HaveField() for better error checking
This is a very late followup to my ginkgo-improving work of 2021.
It has been stuck since December because it requires gomega 1.17,
which we've just enabled.

This commit is simply a copy-paste of a command I saved in
my TODO list many months ago:

     sed -i -e 's/Expect(\([^ ]\+\)\.\([a-zA-Z0-9]\+\))\.To(Equal(/Expect(\1).To(HaveField(\"\2\", /' test/e2e/*_test.go

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-05-03 13:38:21 -04:00
Giuseppe Scrivano
e5d6b6b0a2 volume: add new option -o o=noquota
add a new option to completely disable xfs quota usage for a volume.

xfs quota set on a volume, even just for tracking disk usage, can
cause weird errors if the volume is later re-used by a container with
a different quota projid.  More specifically, link(2) and rename(2)
might fail with EXDEV if the source file has a projid that is
different from the parent directory.

To prevent such kind of issues, the volume should be created
beforehand with `podman volume create -o o=noquota $ID`

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-05-03 13:36:00 -04:00
Daniel J Walsh
4ff6884fb8 Add CreatedSince & CreatedAt format fields to podman image history
Fixes: https://github.com/containers/podman/issues/14012

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-03 13:32:28 -04:00
OpenShift Merge Robot
9133a6d044
Merge pull request #13698 from Luap99/version
Bump version to v4.1.0-dev
2022-04-27 10:56:43 -04:00
OpenShift Merge Robot
bbe419ef9f
Merge pull request #14023 from rhatdan/kube
Truncate annotations when generating kubernetes yaml files
2022-04-27 09:42:31 -04:00
Paul Holzinger
609b52f726
Bump version to v4.1.0-dev
I think we forgot to bump the version in the main branch. It should be
v4.1.0-dev now.
Also set the min api version to 4.0.0 as on the podman 4.0 branch.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-27 14:32:28 +02:00
Paul Holzinger
70a2c00089
play kube respect hostNetwork
We need to use the host network when it is set in the config and
--network was not used.

This regression was added in 3e9af2029f.

Fixes #14015

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-27 13:28:34 +02:00
OpenShift Merge Robot
053b09660f
Merge pull request #13997 from Luap99/gocritic
enable gocritic linter
2022-04-27 04:50:01 -04:00
Daniel J Walsh
7259a6315c
Truncate annotations when generating kubernetes yaml files
Kubernetes only allows 63 characters in an annotation.  Make sure
that we only add 63 or less charaters when generating kube. Warn
if containers or pods have longer length and truncate.

Discussion: https://github.com/containers/podman/discussions/13901

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-04-27 04:39:05 -04:00
OpenShift Merge Robot
5ac00a7287
Merge pull request #14009 from vrothberg/add-benchmarks
benchmarks: add more image benchmarks
2022-04-26 14:36:30 -04:00
Paul Holzinger
4f8ece76ff
play kube: do not skip containers by name
We should not exclude contianers by name. If a users has a container
with the name "inf" it is currently skipped. This is wrong. The k8s yaml
does not contain infra containers so we do not have to skip them.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-26 18:12:27 +02:00
Paul Holzinger
51fbf3da9e
enable gocritic linter
The linter ensures a common code style.
- use switch/case instead of else if
- use if instead of switch/case for single case statement
- add space between comment and text
- detect the use of defer with os.Exit()
- use short form var += "..." instead of var = var + "..."
- detect problems with append()
```
newSlice := append(orgSlice, val)
```
  This could lead to nasty bugs because the orgSlice will be changed in
  place if it has enough capacity too hold the new elements. Thus we
  newSlice might not be a copy.

Of course most of the changes are just cosmetic and do not cause any
logic errors but I think it is a good idea to enforce a common style.
This should help maintainability.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-26 18:12:22 +02:00
Daniel J Walsh
49264c7148
vendor in containers/(common,buildah,storage,image)
Changes as of 2022-04-21:

- apply-podman-deltas: minor cleanup
- buildah-tests.diff: deal with:
  . buildah #3894 (the registry one), which affected helpers.bash in
    a way that resulted in conflicts here; and
  . buildah #3917 (etchosts), which caused offset-only diffs
    with no conflicts
- Reevaluate the bud skip list, and reenable some tests that
  seems to be passing now under podman:
  . bud with specified context ...
  . two tests that require a local registry (which buildah now runs)
  . bud with --cgroup-parent

Signed-off-by: Ed Santiago <santiago@redhat.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-04-26 08:49:38 -04:00
Valentin Rothberg
facc009ca0 benchmarks: add more image benchmarks
Add more benchmarks for the most common and performance-critical image
commands.  Benchmarks for `podman build` should go into a separate
section.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-04-26 14:25:17 +02:00
Ed Santiago
ee9d755c5b Robustify nginx tests
[skip ci]

While chasing a flake, I discovered that our alpine_nginx
image is broken: it returns 404 on all requests. We never
caught this because--surprise!--curl exits 0 even when
server returns 4xx/5xx status.

Let's be strict: add -f (--fail) option to all invocations
of curl.

And, although I couldn't identify the root cause of the
flake (in "run two containers with the same IP" test),
I can at least fix the broken wait-for-nginx loop, bump
up the number of retries, and improve diagnostics on
failure. And add a strict error-message check.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-04-25 14:25:10 -06:00
OpenShift Merge Robot
09ef4f2e22
Merge pull request #13978 from Luap99/unparam
enable unparam linter
2022-04-25 13:43:57 -04:00
OpenShift Merge Robot
a775e77cba
Merge pull request #13995 from ashley-cui/revrootful
Rootfull -> Rootful
2022-04-25 13:37:59 -04:00
Ashley Cui
a615cb2fe2 Docs rootfull -> rootful
Some docs say roofull. Change to rootful.

[NO NEW TESTS NEEDED]

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-04-25 11:53:57 -04:00
OpenShift Merge Robot
9784d97bd6
Merge pull request #13993 from aonoa/main
Modify the pod name suffix '_pod' to '-pod'
2022-04-25 09:37:05 -04:00
OpenShift Merge Robot
a9f8fb9cea
Merge pull request #13981 from rhatdan/volume
Add support for passing --volumepath
2022-04-25 09:35:03 -04:00
Ashley Cui
1260bf631f Revert "Switch all rootful to rootfull"
This reverts commit cc3790f332.

We can't change rootful to rootfull because `rootful` is written into the machine config. Changing this will break json unmarshalling, which will break existing machines.

[NO NEW TESTS NEEDED]

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-04-25 09:14:04 -04:00
Paul Holzinger
c7b16645af
enable unparam linter
The unparam linter is useful to detect unused function parameters and
return values.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-25 13:23:20 +02:00
aonoa
94d043be8c Modify the pod name suffix '_pod' to '-pod'
Signed-off-by: aonoa <1991849113@qq.com>
2022-04-25 15:47:24 +08:00
Daniel J Walsh
0d83f4b768
Allow filtering of "removing", it is a valid status
Do not use a list of statuses outside of libpod to validate container
statuses.  Removing status was never added to the list.

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

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-04-24 06:07:10 -04:00
Daniel J Walsh
13079abe3f
Add support for passing --volumepath
Fixes: https://github.com/containers/podman/issues/13860

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-04-23 08:03:36 -04:00
OpenShift Merge Robot
2df9bdc009
Merge pull request #13973 from Luap99/linter-revive
replace golint with revive linter
2022-04-23 06:32:41 -04:00
Chris Evich
ad249222d2
Fix hang in test_connect
Starting the podman service in debug-mode causes aardvark to run in
debug mode.  This does unexpected things with file-descriptors leading
to a test-hang.  Thanks to @Luap99 for the fix.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-04-22 16:16:32 -04:00