Commit Graph

15868 Commits

Author SHA1 Message Date
Paul Holzinger 472f79f08e
test/testvol: move Containerfile into testvol dir
I think it is confusion to have this Containerfile in the repo root. It
is used for the tests only so we should move it into the same dir.

Also adapt the Makefile target to use the new path and add the current
date as tag instead of using latest which can break CI easily when we
have to update the image.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-23 17:43:09 +02:00
Paul Holzinger 0d3aa61be4
libpod: volume plugin sendRequest remove body bool
There is no need for an extra parameter if the body is set. We can just
check to interface for not nil.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-23 17:43:09 +02:00
Charlie Doern ad78d239dd fix system connection and scp testing
podman image scp and podman system connection tests were querying an existing website during testing.
Change to a URL that will never exist given an improper domain extension

also just generally clean up a few things in both scp and connection testing

resolves #14699

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-23 11:26:19 -04:00
Matthew Heon 3a810b8d2a Two fixes for DB exit code handling
Firstly: don't prune exit codes after a refresh - instead, clear
the table entirely. We are guaranteed that all containers are
gone after a refresh, we should not worry about exit codes given
this.

Secondly: alter the way pruning was done. We were updating the DB
by calling Update from within an existing View, and stacking an
RW transaction on top of an existing RO one seems dodgy; further,
modifying a bucket while iterating over it with ForEach is
undefined behavior.

Hopefully this will resolve our CI issues.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-06-23 10:44:38 -04:00
Valentin Rothberg 30e7cbccc1 libpod: fix wait and exit-code logic
This commit addresses three intertwined bugs to fix an issue when using
Gitlab runner on Podman.  The three bug fixes are not split into
separate commits as tests won't pass otherwise; avoidable noise when
bisecting future issues.

1) Podman conflated states: even when asking to wait for the `exited`
   state, Podman returned as soon as a container transitioned to
   `stopped`.  The issues surfaced in Gitlab tests to fail [1] as
   `conmon`'s buffers have not (yet) been emptied when attaching to a
   container right after a wait.  The race window was extremely narrow,
   and I only managed to reproduce with the Gitlab runner [1] unit
   tests.

2) The clearer separation between `exited` and `stopped` revealed a race
   condition predating the changes.  If a container is configured for
   autoremoval (e.g., via `run --rm`), the "run" process competes with
   the "cleanup" process running in the background.  The window of the
   race condition was sufficiently large that the "cleanup" process has
   already removed the container and storage before the "run" process
   could read the exit code and hence waited indefinitely.

   Address the exit-code race condition by recording exit codes in the
   main libpod database.  Exit codes can now be read from a database.
   When waiting for a container to exit, Podman first waits for the
   container to transition to `exited` and will then query the database
   for its exit code. Outdated exit codes are pruned during cleanup
   (i.e., non-performance critical) and when refreshing the database
   after a reboot.  An exit code is considered outdated when it is older
   than 5 minutes.

   While the race condition predates this change, the waiting process
   has apparently always been fast enough in catching the exit code due
   to issue 1): `exited` and `stopped` were conflated.  The waiting
   process hence caught the exit code after the container transitioned
   to `stopped` but before it `exited` and got removed.

3) With 1) and 2), Podman is now waiting for a container to properly
   transition to the `exited` state.  Some tests did not pass after 1)
   and 2) which revealed the third bug: `conmon` was executed with its
   working directory pointing to the OCI runtime bundle of the
   container.  The changed working directory broke resolving relative
   paths in the "cleanup" process.  The "cleanup" process error'ed
   before actually cleaning up the container and waiting "main" process
   ran indefinitely - or until hitting a timeout.  Fix the issue by
   executing `conmon` with the same working directory as Podman.

Note that fixing 3) *may* address a number of issues we have seen in the
past where for *some* reason cleanup processes did not fire.

[1] https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27119#note_970712864

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>

[MH: Minor reword of commit message]

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-06-23 09:11:57 -04:00
Valentin Rothberg 15188dce05 conmon: silence json-file error
We should just silently fall through.  The log was flooding the
system-service logs when running Gitlab runner.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-06-23 09:11:57 -04:00
openshift-ci[bot] 8e88abda85
Merge pull request #14608 from edsantiago/logformatter_new_url
logformatter: link to logs using Cirrus API
2022-06-22 21:20:31 +00:00
Charlie Doern 2eda547dcd podman run/create -v relative filepath support
podman currently does not support relative volume paths. Add parsing for relative paths in specgen, converting
whatever volume was given to an absolute path.

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-22 16:52:16 -04:00
openshift-ci[bot] 0d1fa2b504
Merge pull request #14658 from eriksjolund/setup_to_set_up
"setup" -> "set up" and similar
2022-06-22 20:05:58 +00:00
Ed Santiago ef563c5a1e logformatter: link to logs using Cirrus API
One day we may use AWS for part of CI. Do you want to maintain
two separate code paths in this script for linking to artifacts
in multiple cloud providers? Can you say no? I knew you could.

Cirrus already knows the location of the artifacts and provides
a transparent mechanism for accessing them. Use it.

This PR exposed a nasty bug in our environment-variable handling:
envariables passed through to the containerized environment were
being double-space-escaped, so "FOO=a b" ended up as "FOO=a\ b"
(with a backslash), with one consequence being invalid URLs.
The solution is simple: run 'podman -e FOO', not '-e FOO=value'.

Finally, reinstate the environment-variable dump (in comments).
I had removed this in a moment of panic over leaking secrets,
but no, that doesn't happen. Exclude scary-sounding vars anyway.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-06-22 11:26:15 -06:00
Erik Sjölund aa4279ae15 Fix spelling "setup" -> "set up" and similar
* Replace "setup", "lookup", "cleanup", "backup" with
  "set up", "look up", "clean up", "back up"
  when used as verbs. Replace also variations of those.

* Improve language in a few places.

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-06-22 18:39:21 +02:00
openshift-ci[bot] ca26d44d3b
Merge pull request #14688 from rhatdan/docs
[CI:DOCS] Update basic_networking.md
2022-06-22 15:47:00 +00:00
openshift-ci[bot] 2382955c6a
Merge pull request #14660 from rhatdan/bindings
Remove logrus.Infof on bindings start and attach
2022-06-22 13:02:35 +00:00
openshift-ci[bot] 2629f445a0
Merge pull request #14690 from sstosh/prune-message
Fix system prune output message
2022-06-22 13:01:36 +00:00
openshift-ci[bot] 00ce793f0d
Merge pull request #14631 from n1hility/opendoc-after-install
Open Windows tutorial after MSI installation
2022-06-22 11:21:59 +00:00
Toshiki Sonoda 0320ce37de Fix system prune output message
'podman system prune' command always outputs "Deleted Images" message,
even though there is no dangling or unused image to remove.
This message should be output only if dangling or unused image exists.

[NO NEW TESTS NEEDED]

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-06-22 13:12:46 +09:00
Daniel J Walsh 7ef282d643
Remove lorgus.Infof on bindings start and attach
We are only doing logrus.Info on a couple of bindings. I see no reason
to only do this on a couple, seems like debugging information more then
useful to the caller. We had a complaint about this so removing.

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

[NO NEW TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-06-21 16:28:58 -04:00
gunnar 132393d15c
Update basic_networking.md
a little enhancement based on the [comment by @TomSweeneyRedHat](https://github.com/containers/podman/pull/14290#pullrequestreview-979316099)

Replaces: https://github.com/containers/podman/pull/14290
Thanks to @vrms

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-06-21 16:24:59 -04:00
openshift-ci[bot] 15a651f860
Merge pull request #13384 from flouthoc/podman-remote-add-with-annotate
bindings: manifest should follow `es_model` naming convention while marshalling `OSVersion` and `OSFeatures`
2022-06-21 20:18:01 +00:00
openshift-ci[bot] 8d17251f8a
Merge pull request #14642 from rhatdan/VENDOR
Update to use gopkg.in/yaml.v3
2022-06-21 19:23:48 +00:00
openshift-ci[bot] 8863e13dc3
Merge pull request #14643 from clobrano/feature/network/list/dangling/dev
allow filter networks by dangling status
2022-06-21 18:19:16 +00:00
openshift-ci[bot] c9dce6353d
Merge pull request #14659 from eriksjolund/setup_to_set_up_in_code
[CI:DOCS] "setup" -> "set up" in source code comments
2022-06-21 18:08:31 +00:00
openshift-ci[bot] 7724eb07ce
Merge pull request #14638 from giuseppe/improve-error-messages-rootless-unshare
pkg/rootless: error messages improvements
2022-06-21 18:01:15 +00:00
openshift-ci[bot] fe974101eb
Merge pull request #14625 from cdoern/podShm
podman pod create --shm-size
2022-06-21 17:57:24 +00:00
openshift-ci[bot] b8b0fa8045
Merge pull request #14683 from Luap99/bump-cobra
bump github.com/spf13/cobra from 1.4.0 to 1.5.0
2022-06-21 17:37:14 +00:00
openshift-ci[bot] 588d8ec371
Merge pull request #14662 from Luap99/api-json
API: containers/json always set application/json content type
2022-06-21 16:26:08 +00:00
openshift-ci[bot] 79eb467325
Merge pull request #14677 from giuseppe/memory-limit-ctr-handlers
api: show the memory limit specified for the container
2022-06-21 15:58:07 +00:00
openshift-ci[bot] 1cf19843d0
Merge pull request #14672 from sbmthakur/patch-1
[CI:DOCS] Fix typos
2022-06-21 15:54:20 +00:00
Carlo Lobrano 4a981c490b allow filter networks by dangling status
add the ability to filter networks by their dangling status via:

`network ls --filter dangling=true/false`

Fixes: #14595
Signed-off-by: Carlo Lobrano <c.lobrano@gmail.com>
2022-06-21 17:50:55 +02:00
Paul Holzinger 050693b2e7
bump github.com/spf13/cobra from 1.4.0 to 1.5.0
Update cobra to latest version. Remove workaround for podman -h.
Also regenerate the completion scripts.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-21 17:17:06 +02:00
openshift-ci[bot] c8032b9911
Merge pull request #14680 from containers/dependabot/go_modules/github.com/stretchr/testify-1.7.4
Bump github.com/stretchr/testify from 1.7.2 to 1.7.4
2022-06-21 14:19:58 +00:00
Giuseppe Scrivano ecf225019a
rootless: attempt to join all specified paths
when there are multiple paths specified, attempt to join them all
before returning an error.  Previously we were failing on the first
pid found.

[NO NEW TESTS NEEDED]

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-21 15:50:52 +02:00
Giuseppe Scrivano 9afd5e31c8
rootless: improve error messages
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-21 15:50:52 +02:00
Giuseppe Scrivano 99258703a7
rootless: do not ignore reexec_in_user_namespace_wait errors
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-21 15:49:05 +02:00
dependabot[bot] cfba09f682
Bump github.com/stretchr/testify from 1.7.2 to 1.7.4
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.2 to 1.7.4.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.2...v1.7.4)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-21 12:10:35 +00:00
Giuseppe Scrivano 1f539a2641
api: show the memory limit specified for the container
use the memory limit specified for the container instead of reading it
from the cgroup.  It is not reliable to read it from the cgroup since
the container could have been moved to a different cgroup and in
general the OCI runtime might create a sub-cgroup (like crun does).

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-21 12:06:33 +02:00
Shubham Thakur 7f82c43231
Fix typos
Signed-off-by: Shubham Thakur <sbmthakur@gmail.com>
2022-06-20 20:40:10 -05:00
cdoern f451b68dfa podman pod create --shm-size
expose the --shm-size flag to podman pod create and add proper handling and inheritance
for the option.

resolves #14609

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-20 10:25:00 -04:00
openshift-ci[bot] fe8e536328
Merge pull request #14556 from sstosh/system-prune-network
podman system prune support prune unused networks
2022-06-20 13:57:42 +00:00
Paul Holzinger 46da7bc78f
podman machine init --now: respect proxy envs
podman machine start contains more logic than just the simple vm.Start()
call. Instead of duplicating this into inti we just call start().

[NO NEW TESTS NEEDED] I have no way to test this right now.

Fixes #14640

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-20 15:36:00 +02:00
Paul Holzinger bb5bd09ead
API: containers/json always set application/json content type
When we return no containers we just return `[]` but we still have to keep
the content type header `application/json` so external tools can correctly
parse the output.

Fixes #14647

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-20 14:07:56 +02:00
openshift-ci[bot] 55052c6b98
Merge pull request #14657 from eriksjolund/rewrite_env_docs
[CI:DOCS] Rewrite --env docs
2022-06-19 17:16:32 +00:00
Erik Sjölund 2827140907 [CI:DOCS] "setup" -> "set up" in source code comments
* Replace "setup", "lookup" with "set up", "look up"
  when used as verbs.

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-06-19 12:18:08 +02:00
Erik Sjölund dda68201a4 [CI:DOCS] Rewrite --env docs
* Add docs about trailing * functionality in podman-exec.1.md

* Rewrite --env description in podman-create.1.md and podman-run.1.md

* Rewrite the --env examples in podman-create.1.md and podman-run.1.md

Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-06-19 09:56:46 +02:00
openshift-ci[bot] ff06c791ad
Merge pull request #14637 from edigaryev/fix-matrix-expansion
.cirrus.yml: fix matrix expansion by properly merging YAML mappings
2022-06-17 15:58:57 +00:00
openshift-ci[bot] 3b03bd3f78
Merge pull request #14592 from cevich/more_fix_404
Cirrus: Fix build. dep. missed in #14521
2022-06-17 15:23:44 +00:00
Daniel J Walsh 948866e8a0
Update to use gopkg.in/yaml.v3
[NO NEW TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-06-17 11:03:08 -04:00
openshift-ci[bot] 04de0dabce
Merge pull request #14599 from rhatdan/VENDOR
Vendor in latest containers/image
2022-06-17 14:59:17 +00:00
Nikolay Edigaryev 075c9ac455 .cirrus.yml: fix matrix expansion by properly merging YAML mappings
Signed-off-by: Nikolay Edigaryev <edigaryev@gmail.com>
2022-06-17 15:02:01 +03:00
Daniel J Walsh 8090445762
vendor in latests containers/image
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-06-17 06:10:24 -04:00