15741 Commits

Author SHA1 Message Date
5614c29ce1 compat api: fix regressions from "Swagger refactor/cleanup"
For some reason commit 5b79cf15a022 moved the container create options
parsing from cmd/podman/common to pkg/api/handlers. However it did not
remove the old code. Unfortunately  it moved the code from an outdated
version and did not update it before this commit was merged.
Therefore a couple of regressions were introduced. I manually compared
both versions and found three missing bugfixes.

I fixed the network test again that was changed in bce97a3b5dd1. We
want bridge as default even as rootless. Sine the test is not run as
rootless in CI the regression was not caught.
Also the no hosts test never worked since it was missing the import
check if the hosts file exists.

I don't think we can check for the volume parsing change since this only
works on windows/wsl.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-09 16:00:46 +02:00
eed0e66710 Pass '--file-locks' to OCI runtime at restoring
`podman container restore --file-locks` does not restore file locks
because this option is not passed to OCI runtime. This patch fixes this
issue.

Signed-off-by: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
2022-06-09 09:49:53 -04:00
c77691f06f Do not error on signalling a just-stopped container
Previous PR #12394 tried to address this, but made a mistake:
containers that have just exited do not move to the Exited state
but rather the Stopped state - as such, the code would never have
run (there is no way we start `podman kill`, and the container
transitions to Exited while we are doing it - that requires
holding the container lock, which Kill already does).

Fix the code to check Stopped as well (we omit Exited entirely
but it's a cheap check and our state logic could change in the
future). Also, return an error, instead of exiting cleanly - the
Kill failed, after all. ErrCtrStateInvalid is already handled by
the sig-proxy logic so there won't be issues.

[NO NEW TESTS NEEDED] This fixes a race that I cannot reproduce
myself, and I have no idea how we'd repro in CI.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-06-09 09:11:18 -04:00
7e97675025 Bump github.com/opencontainers/runc from 1.1.2 to 1.1.3
Bumps [github.com/opencontainers/runc](https://github.com/opencontainers/runc) from 1.1.2 to 1.1.3.
- [Release notes](https://github.com/opencontainers/runc/releases)
- [Changelog](https://github.com/opencontainers/runc/blob/v1.1.3/CHANGELOG.md)
- [Commits](https://github.com/opencontainers/runc/compare/v1.1.2...v1.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-09 12:15:39 +00:00
549bffe58d shell completion: fix problems with container path completion
When you try to complete a path which exists and it is a file the
completion logic did not check the parent dir for other matching file
names. To fix that we have to check if the current completion is not a
dir and use the parent dir in this case.

See the updated test for an example why this is required.

Also make sure directories are correctly completed, the shell always
adds the "/" as suffix to signal the user that this path is a directory.
In this case we do not want to automatically add a space. When the path
is a regular file we want the space after the suggestion since there is
nothing more to complete.

This better matches the normal default shell completion.

The test were changed to not assume any particular ordering since this
is irrelevant for the shell completion script and there is no guarantee
about the ordering.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-09 13:46:55 +02:00
643a692360 Merge pull request #14543 from edsantiago/apiv2_test_cleanup
apiv2 tests: clean up
2022-06-09 06:57:01 -04:00
bce97a3b5d apiv2 tests: clean up
Mostly fix a bad design decision I made early on, re: registry.
 old: registry starts once, runs to the end
 new: registry is brought up on demand, then stopped
Reason: there are times when we need a password-controlled
registry, and times when we need it open.

As long as I'm in here, I've also cleaned up some confusing code
and fixed things so tests can run rootless again.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-06-08 19:33:07 -06:00
576c739e5f Merge pull request #14484 from marshall-lee/test/manifest-push
Add missing tests for manifests API
2022-06-08 14:29:39 -04:00
700248bfef Update remote_client.md
Explicitly include copy-and-paste code line for `ssh-copy-id` because people like myself will easily forget this part and (repeatedly) overlook it in the text. 😊

Supersedes #14445 and attempts to address review by @TomSweeneyRedHat there (but enforcing a filename instead of using a placeholder).

Signed-off-by: Christopher 'm4z' Holm <them4z@gmail.com>

Signed-off-by: Christopher 'm4z' Holm <them4z@googlemail.com>
2022-06-08 17:42:23 +02:00
864d46c77e Merge pull request #14532 from rhatdan/man
--userns=keep-id,nomap are not allowed in rootful mode
2022-06-08 11:03:36 -04:00
254048e17d Cirrus: Fix artifact passing when dep. skipped
When passing artifacts from one task to another, if a direct dependency
was not created due to `only_if`, a race condition can occur:  The
descendent task may start running prior to the indirect (but required)
dependency (`build` in this case) completing and uploading artifacts.
Fix this by spamming a `build` dependency into all tasks which require
it (basically everything).

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-06-08 10:43:43 -04:00
f0516a0141 --userns=keep-id,nomap are not allowed in rootful mode
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-06-08 09:59:13 -04:00
b4c981893d Merge pull request #14220 from Luap99/resolvconf
use resolvconf package from c/common/libnetwork
2022-06-07 18:00:34 -04:00
dfdc95754e Merge pull request #14519 from rhatdan/Dockerfile
[CI:DOCS] Podman images generated with empty /etc/containers/storage.conf
2022-06-07 16:00:46 -04:00
496677925a Merge pull request #14516 from cevich/podmanimage_docs
[CI:DOCS] Minor: Fix podmanimage README links
2022-06-07 15:58:34 -04:00
fef40e2ad3 Merge pull request #14483 from jakecorrenti/restart-privelaged-containers-after-host-device-change
Privileged containers can now restart if the host devices change
2022-06-07 15:48:36 -04:00
f459c197bd Merge pull request #14512 from cdoern/infraInherit
Infra Inheritance patch
2022-06-07 14:46:35 -04:00
126686f3d7 Podman images generated with empty /etc/containers/storage.conf
The Containerfiles were built with sed -i, which is leading to empty
storage.conf files. This will cause Podman in a container to print
warning information about storage.driver not being set to something.

[NO NEW TESTS REQUIRED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-06-07 14:43:01 -04:00
96578a26c3 Merge pull request #14479 from ibotty/patch-1
[CI:DOCS] Add docs of changing default netavark networks
2022-06-07 14:32:56 -04:00
3274496a60 Merge pull request #14438 from cevich/replace_skips
Cirrus: Simplify only_if/skip + optimize multiarch
2022-06-07 14:28:36 -04:00
20aaaa382c Minor: Fix podmanimage README links
Signed-off-by: Chris Evich <cevich@redhat.com>
2022-06-07 13:48:51 -04:00
dc4a01ec61 Add docs of changing default netavark networks
Signed-off-by: Tobias Florek <tob@butter.sh>
2022-06-07 19:30:51 +02:00
ed1e4f94fb Infra Inheritance patch
infra was overriding options that it should be appending rather than resetting.
fix this by appending the given container's spec to the compatible options before marshaling/unmarshaling

resolves #14454

Signed-off-by: cdoern <cdoern@redhat.com>
2022-06-07 11:42:16 -04:00
5fc3d871ad Cirrus: Simplify only_if/skip + optimize multiarch
Using both the 'skip' and 'only_if' features at the same time may be
hard for maintainers to decipher.  Consolidate them into `only_if` since
that bypasses creation of the task all together - meaning there are
potentially fewer tasks for a developer to scroll through.

Since the `multiarch` Cirrus-Cron build no-longer depends on the direct
"build-ability" from the current repo. state, it can be further
optimized.  When operating in this context, avoid running many/most
other tasks, depending instead only on `ext_svc_check`.

Finally, add a simple document describing the various runtime contexts
along with the list of expected tasks.  Reference this prominently right
in front of every `only_if` so it's impossible for a maintainer to miss.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-06-07 11:39:26 -04:00
96f9d0dc0e Merge pull request #14507 from Luap99/userns-net
libpod: store network status when userns is used
2022-06-07 11:00:28 -04:00
7a09429dff Merge pull request #14506 from containers/dependabot/go_modules/github.com/docker/docker-20.10.17incompatible
Bump github.com/docker/docker from 20.10.16+incompatible to 20.10.17+incompatible
2022-06-07 10:20:27 -04:00
a69a48b0d6 test/e2e: network dis-/connect test remove unhelpful assertions
Using `To(BeTrue()/BeFalse())` provides very bas error messages. It is not
clear to a log reader what went wrong. Using ContainsSubstring() make
the error message much more useful.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-07 15:17:12 +02:00
90d80cf81e use resolvconf package from c/common/libnetwork
Podman and Buildah should use the same code the generate the resolv.conf
file. This mostly moved the podman code into c/common and created a
better API for it so buildah can use it as well.

[NO NEW TESTS NEEDED] All existing tests should continue to pass.

Fixes #13599 (There is no way to test this in CI without breaking the
hosts resolv.conf)

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-07 15:17:04 +02:00
ddf1d2cb38 update c/common to latest
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-07 15:13:55 +02:00
811cce5a8a libpod: store network status when userns is used
When a container with a userns is created the network setup is special.
Normally the netns is setup before the oci runtime container is created,
however with a userns the container is created first and then the network
is setup. In the second case we never saved the container state
afterwards. Because of it, podman inspect would not show the network info
and network teardown will not happen.

This worked with local podman  because there was a save() call later in the
code path which then also saved the network status. But in the podman API
code path this save never happened thus all containers started via API had
this problem.

Fixes #14465

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-06-07 14:35:07 +02:00
0f424e90d5 Bump github.com/docker/docker
Bumps [github.com/docker/docker](https://github.com/docker/docker) from 20.10.16+incompatible to 20.10.17+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Changelog](https://github.com/moby/moby/blob/master/CHANGELOG.md)
- [Commits](https://github.com/docker/docker/compare/v20.10.16...v20.10.17)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-07 12:11:29 +00:00
e41d4a2471 Add missing tests for manifests API
Also:
 - It fixes a regression in parsing "images" parameter in
   ManifestAddV3 handler.
 - Refactors 12-imagesMore.at to use start_registry helper.
 - Removes some unsafe "exit 1" statements which skip clean up.

Signed-off-by: Vladimir Kochnev <hashtable@yandex.ru>
2022-06-07 14:20:46 +03:00
1ada01a038 Merge pull request #14499 from giuseppe/make-error-clearer
runtime: make error clearer
2022-06-07 03:53:13 -04:00
2a0d896b36 runtime: make error clearer
make the error clearer and state that images created by other tools
might not be visible to Podman when it overrides the graph driver.

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

[NO NEW TESTS NEEDED]

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-06 22:08:16 +02:00
0c0d68e98d Merge pull request #14502 from mheon/readme_updates
[CI:DOCS] Add some Readme updates around machine
2022-06-06 15:15:12 -04:00
3f8a7547ca Merge pull request #14474 from flouthoc/non-volatile-overlay-volume
overlay-volumes: add support for non-volatile `upperdir`,`workdir` for `overlay` volumes
2022-06-06 15:11:11 -04:00
2c12f7bd1a Add some Readme updates around machine
We really should be advertising our Mac and Windows support more
prominently.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2022-06-06 14:43:49 -04:00
8533ea0004 Privileged containers can now restart if the host devices change
If a privileged container is running, stops, and the devices on the host
change, such as a USB device is unplugged, then a container would no
longer start. Previously, the devices from the host were only being
added to the container once: when the container was created. Now, this
happens every time the container starts.

I did this by adding a boolean to the container config that indicates
whether to mount all of the devices or not, which can be set via an option.

During spec generation, if the `MountAllDevices` option is set in the
container config, all host devices are added to the container.

Additionally, a couple of functions from `pkg/specgen/generate/config_linux.go`
were moved into `pkg/util/utils_linux.go` as they were needed in
multiple packages.

Closes #13899

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-06-06 14:14:22 -04:00
521aebf6be Merge pull request #14500 from cevich/tickle_podmanimage
[CI:BUILD] Minor: Remove useless addition of storage.conf
2022-06-06 13:00:02 -04:00
335925f47f Minor: Remove useless addition of storage.conf
This was an accidental leftover from an in-development implementation.
The `sed` command further down entirely replaces the file in the image.
Strip out the unnecessary 'storage.conf' ADD instruction.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-06-06 11:46:33 -04:00
b2ebb91656 Merge pull request #14485 from ashley-cui/flake
Fix secret-verify-leak flake: set build context to subdir
2022-06-06 10:59:19 -04:00
d45b3488f5 Merge pull request #14497 from containers/dependabot/go_modules/github.com/stretchr/testify-1.7.2
Bump github.com/stretchr/testify from 1.7.1 to 1.7.2
2022-06-06 10:55:18 -04:00
aadae49ad3 overlay-volumes: add support for non-volatile upperdir,workdir for anonymous volumes
Similar feature was added for named overlay volumes here: https://github.com/containers/podman/pull/12712
Following PR just mimics similar feature for anonymous volumes.

Often users want their anonymous overlayed volumes to be `non-volatile` in nature
that means that same `upper` dir can be re-used by one or more
containers but overall of nature of volumes still have to be overlay
so work done is still on a overlay not on the actual volume.

Following PR adds support for more advanced options i.e custom `workdir`
and `upperdir` for overlayed volumes. So that users can re-use `workdir`
and `upperdir` across new containers as well.

Usage

```console
podman run -it -v /some/path:/data:O,upperdir=/path/persistant/upper,workdir=/path/persistant/work alpine sh
```

Signed-off-by: Aditya R <arajan@redhat.com>
2022-06-06 18:58:42 +05:30
48a4e6d690 Merge pull request #14453 from flouthoc/support-additional-build-context-on-remote
remote: enable support for additional `--build-context` on macOS and remote
2022-06-06 14:28:22 +02:00
fcf0e167c0 Merge pull request #14487 from TomSweeneyRedHat/dev/tsweeney/fiximagedoc
[CI:DOCS] PodmanImage Readme touchup
2022-06-06 14:22:06 +02:00
5c508cb4ef Bump github.com/stretchr/testify from 1.7.1 to 1.7.2
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.7.1 to 1.7.2.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.7.1...v1.7.2)

---
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-06 12:09:32 +00:00
60bba4f70c Merge pull request #14496 from tupyy/fix-lefovers-from-focus
Cleanup the leftovers in `play kube` e2e test used for ginkgo focus option
2022-06-06 14:04:07 +02:00
67ea5fdad7 Cleanup the leftovers used with ginkgo focus option
Signed-off-by: Cosmin Tupangiu <cosmin@redhat.com>
2022-06-06 11:36:28 +02:00
1fc5a107a0 [CI:DOCS] PodmanImage Readme touchup
@cevich recently renamed all the files named Dockerfile to Containerfile
in this directory.  Touching up the README.md to reflect that.

Also, as I was doing the submit, I noticed a couple of nits in the PR
request template and cleaned those up.

Signed-off-by: tomsweeneyredhat <tsweeney@redhat.com>
2022-06-04 15:19:09 -04:00
8c0e033f27 Merge pull request #14477 from Luap99/partial-logs
podman logs k8s-file: do not reassemble partial log lines
2022-06-03 18:06:58 -04:00