Commit Graph

3923 Commits

Author SHA1 Message Date
OpenShift Merge Robot ed1ba27f8d
Merge pull request #14176 from giuseppe/test-parallel-rm-cleanup
test: simplify cleanup code
2022-05-11 02:39:57 -04:00
Giuseppe Scrivano d0ca90b3ed
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-05-10 20:11:16 +02:00
Giuseppe Scrivano 0774a4ce13
kube: add support for --userns=
add support to override the user namespace to use for the pod.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-05-10 16:51:01 +02:00
Giuseppe Scrivano 9e1ee081f8
kube: honor pod security context IDs
If the RunAsUser, RunAsGroup, SupplementalGroups settings are not
overriden in the container security context, then take the value from
the pod security context.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-05-10 09:09:14 +02:00
Paul Holzinger 8ecd0b5bc8
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-05-09 18:08:38 +02:00
OpenShift Merge Robot 2dcf3067ec
Merge pull request #14152 from giuseppe/fix-ci-search-json
test: fix "podman search format json"
2022-05-09 05:16:28 -04:00
OpenShift Merge Robot ccb6211c7b
Merge pull request #14121 from cdoern/kube
play kube log tag handling
2022-05-09 04:48:49 -04:00
Giuseppe Scrivano bb8f53a727
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-08 17:33:26 +02:00
cdoern b58e7e7f11 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-05-06 15:59:06 -04:00
OpenShift Merge Robot 09b8831fa2
Merge pull request #14124 from vrothberg/e2e-cleanups
e2e cleanups
2022-05-05 08:37:35 -04:00
Valentin Rothberg 6ddccd94f6 e2e: pull_test: speed up --all-tags
Pulling the K8s pause image seems unnecessarily expensive to me. Let's
use the testgitest_v2s2 one which is under our control and weighs only a
couple of KB.

This cut the execution time in less than half on my machine.  Since it's
network bound and I am running on fibre, I expect more significant speed
ups in slower networks.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-05 13:00:47 +02:00
OpenShift Merge Robot 8ed517576c
Merge pull request #14118 from rhatdan/VENDOR
Vendor in containers/buildah@v1.26.1
2022-05-05 06:31:39 -04:00
OpenShift Merge Robot 88f8d398b3
Merge pull request #14098 from Luap99/test-tools
vendor test dependencies instead of installing via network
2022-05-05 05:53:18 -04:00
OpenShift Merge Robot 7af4612d6b
Merge pull request #14059 from cdoern/clone
pass networks to container clone
2022-05-05 05:51:19 -04:00
Valentin Rothberg 140fb3ae17 e2e: pull_test: squash --quiet test
Squash the --quiet test into another one.  The test was more complex
than necessary and can easily be squashed into another one to avoid one
more expensive pull.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-05 11:03:14 +02:00
Valentin Rothberg 669401c314 e2e: pull_test: move tests around
Let's keep simple tests at the top and complex ones at the bottom.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-05 11:03:14 +02:00
Valentin Rothberg 2fa906ccae e2e: pull_test: remove redundant tests
Once upon a time, the tests actually pulled from Docker Hub.  This has
changed with the rate limits, so we can safely remove the redundant
tests to speed up CI.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-05 11:03:14 +02:00
Valentin Rothberg 6eaa9ca264 e2e: manifest_test: use cached registry
Used the cached registry archive instead of pulling down the image from
Quay.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-05 11:03:14 +02:00
Daniel J Walsh ed159f864d
Vendor in containers/buildah@v1.26.1
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-05 04:41:06 -04:00
OpenShift Merge Robot f1703abea1
Merge pull request #14092 from vrothberg/benchmarks
benchmarks: push/pull
2022-05-05 03:40:19 -04:00
OpenShift Merge Robot bdaac4b2b6
Merge pull request #14037 from rhatdan/remoteuri
Report correct RemoteURI
2022-05-04 14:52:19 -04:00
OpenShift Merge Robot ad93318370
Merge pull request #14066 from ashley-cui/sysres
podman system reset removed machines incorrectly
2022-05-04 13:20:09 -04:00
Daniel J Walsh 5fa6f686db
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 12:11:32 -04:00
Paul Holzinger 3866143675
exclude new tools vendor dir from validate
We have no control over the code in the vendored files.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-04 17:11:50 +02:00
Paul Holzinger 3b9177995e
vendor test tools in submodule
Instead of using the main module we should vendor the test tools in a
different directory. That way we do not add extra dependencies to the
main module which can be problemetic for packages or other users.

This is already done in buildah so this makes us more consitent.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-04 17:11:43 +02:00
Ashley Cui 80744c6441 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 10:31:42 -04:00
Niall Crowe ccd576504e 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-04 12:52:27 +01:00
Valentin Rothberg 8781a3635a benchmarks: push/pull
Polish the push and pull benchmarks.  In particular, make sure to not be
network bound during these benchmarks by running a local registry and
pushing a local image that can later on be pulled.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-04 12:15:45 +02:00
cdoern 1585b175db 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-03 23:04:08 -04:00
Jhon Honce 8da5f3f733 Add podman machine events
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2022-05-03 13:49:01 -07:00
Paul Holzinger 9166894c69
vendor test dependencies instead of installing via network
We can vendor the test dependencies such as go-md2man, git-validation
and goimports. This allows us to always install the same version as
specified in go.mod. Also we do not rely on a network connection for
this.

The advantage with this method is that dependabot will also update the
dependencies for us and we do not have to hardcode versions in the
Makefile.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-05-03 18:43:18 +02:00
Valentin Rothberg 4eff0c8cf2 pod: add exit policies
Add the notion of an "exit policy" to a pod.  This policy controls the
behaviour when the last container of pod exits.  Initially, there are
two policies:

 - "continue" : the pod continues running. This is the default policy
                when creating a pod.

 - "stop" : stop the pod when the last container exits. This is the
            default behaviour for `play kube`.

In order to implement the deferred stop of a pod, add a worker queue to
the libpod runtime.  The queue will pick up work items and in this case
helps resolve dead locks that would otherwise occur if we attempted to
stop a pod during container cleanup.

Note that the default restart policy of `play kube` is "Always".  Hence,
in order to really solve #13464, the YAML files must set a custom
restart policy; the tests use "OnFailure".

Fixes: #13464
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-02 13:29:59 +02:00
OpenShift Merge Robot 2e75cb72ca
Merge pull request #14062 from Luap99/resolv.conf
libpod: host netns keep same /etc/resolv.conf
2022-04-29 13:45:59 -04:00
Paul Holzinger 01acc2565a
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-04-29 15:37:14 +02:00
Paul Holzinger 5198209269
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-04-29 15:30:55 +02:00
Paul Holzinger a48c37df37
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-04-29 14:06:54 +02:00
Paul Holzinger 69c479b16e
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-04-29 14:06:38 +02:00
Daniel J Walsh 7f28fd9386
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-04-28 10:27:21 -04:00
OpenShift Merge Robot 87454cf87a
Merge pull request #14040 from edsantiago/gomega_havefield
e2e tests: use HaveField() for better error checking
2022-04-28 10:25:46 -04:00
OpenShift Merge Robot d0b96a541d
Merge pull request #14051 from giuseppe/volume-create-noquota-option
volume: add new option -o o=noquota
2022-04-28 10:23:58 -04:00
Ed Santiago a5aea8e503 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-04-28 05:43:41 -06:00
Ed Santiago b3f38c31b2 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-04-28 05:41:53 -06:00
Giuseppe Scrivano 91ead15283
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-04-28 13:29:01 +02:00
OpenShift Merge Robot 7321f5e462
Merge pull request #14034 from rhatdan/history
Add CreatedSince & CreatedAt format fields to podman image history
2022-04-27 17:08:44 -04:00
Daniel J Walsh 22b421dd7e
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-04-27 15:15:03 -04:00
Chris Evich d4e30b33a1
Temporarily skip netavark/aardvark e2e test
Ref: https://github.com/containers/podman/issues/13931

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-04-27 12:13:54 -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
Paul Holzinger 5b4af0584d
replace golint with revive linter
golint, scopelint and interfacer are deprecated. golint is replaced by
revive. This linter is better because it will also check for our error
style: `error strings should not be capitalized or end with punctuation or a newline`

scopelint is replaced by exportloopref (already endabled)
interfacer has no replacement but I do not think this linter is
important.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-22 15:12:33 +02:00
Daniel J Walsh 454468e034
Update test to run network check in both rootless and rootfull mode
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-04-22 09:02:05 -04:00
OpenShift Merge Robot ad3da638ce
Merge pull request #13918 from Luap99/hosts
use etchosts package from c/common
2022-04-22 08:50:32 -04:00
OpenShift Merge Robot 1bafde2d22
Merge pull request #13881 from rhatdan/userns
Add support for --userns=nomap
2022-04-22 08:40:34 -04:00
OpenShift Merge Robot 22500d797a
Merge pull request #13972 from Luap99/staticcheck
enable staticcheck linter
2022-04-22 08:26:31 -04:00
OpenShift Merge Robot 04acbaa4b1
Merge pull request #13969 from flouthoc/mount-csv-parsing
specgen-volumes: parse `--mount` using csv-reader instead of split.
2022-04-22 07:08:32 -04:00
Paul Holzinger e0f5bf279b
test/system: add containers.conf test for new /etc/hosts options
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-22 13:06:01 +02:00
Paul Holzinger e4ab8a5bed
shared netns and --add-host should conflict
Because /etc/hosts is shared for all containers with a shared network
namespace you should not be able to add hosts from a joined container.
Only the primary netns container can set the hosts.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-22 13:06:00 +02:00
Paul Holzinger cf1b0c1965
network dis-/connect: update /etc/hosts
When we connect or disconnect from a network we also have to update
/etc/hosts to ensure we only have valid entries in there.
This also fixes problems with docker-compose since this makes use of
network connect/disconnect.

Fixes #12533

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-22 13:05:53 +02:00
Paul Holzinger 128086639c
libpod: fix c.Hostname() to respect the utsNsCtr
When we lookup the hostname for a given container we have to check if
the container is joined to another utsns and use this hostname then
instead.
This fixes a problem where the `hostname` command would use the correct
name but /etc/hostname would contain a different name.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-22 12:59:51 +02:00
Paul Holzinger 696bcd2773
use etchosts package from c/common
Use the new logic from c/common to create the hosts file. This will help
to better allign the hosts files between buildah and podman.

Also this fixes several bugs:
- remove host entries when container is stopped and has a netNsCtr
- add entries for containers in a pod
- do not duplicate entries in the hosts file
- use the correct slirp ip when an userns is used

Features:
- configure host.containers.internal entry in containers.conf
- configure base hosts file in containers.conf

Fixes #12003
Fixes #13224

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-22 12:59:49 +02:00
OpenShift Merge Robot 0d6af14387
Merge pull request #13964 from rhatdan/rootfull
Switch all rootful to rootfull
2022-04-22 06:56:33 -04:00
Paul Holzinger 2a8e435671
enable staticcheck linter
Fix many problems reported by the staticcheck linter, including many
real bugs!

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-04-22 12:51:29 +02:00
OpenShift Merge Robot 1fcefc94f9
Merge pull request #13971 from rhatdan/codespell
[CI:DOCS] Run codespell on code
2022-04-22 06:34:32 -04:00
OpenShift Merge Robot 82393e2565
Merge pull request #13935 from edsantiago/bats_assert
system tests: add assert(), and start using it
2022-04-22 06:30:49 -04:00
OpenShift Merge Robot 26a51b2900
Merge pull request #13943 from cdoern/clone
podman container clone -f
2022-04-22 06:24:52 -04:00
Daniel J Walsh e39f4495e7
Run codespell on code
[NO NEW TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-04-22 06:18:20 -04:00
Aditya R f87f23e3b6
specgen-volumes: parse --mount using csv-reader instead of split by comma
Following commit ensures that csv escaping is supported while using
inline `--mount=type=......` flag with `podman run` by using
`encoding/csv` to parse options instead of performing a `split.String(`
by `comma`.

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-04-22 14:49:56 +05:30
OpenShift Merge Robot 2627345dd5
Merge pull request #13958 from cevich/fix_system_criu_relink
Workaround criu re-linking output in system test
2022-04-22 05:18:34 -04:00
OpenShift Merge Robot 78ccd83390
Merge pull request #13963 from flouthoc/revert-entrypoint-compat
Revert "container,inspect: convert Entrypoint to array instead of a string
2022-04-21 18:18:55 -04:00
Chris Evich 93ecafcbae
Workaround criu re-linking output in system test
When run on an F36 host using netavark/aardvark-dns, for whatever
underlying reason most checkpoint/restore tests are emitting an error
similar to:

`criu: Symbol `__rseq_offset' has different size in shared object,
consider re-linking`

This extraneous output is causing the basic checkpoint system test to
fail.  Since, all other testing of checkpoint/restore feature is
passing (also with the extraneous message) loosen the system test
sensitivity to match.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-04-21 17:53:31 -04:00
OpenShift Merge Robot d5f568efe3
Merge pull request #13957 from cevich/fix_remote_netavark
Fix using --network-backend on podman-remote
2022-04-21 17:27:04 -04:00
Daniel J Walsh cc3790f332
Switch all rootful to rootfull
We are inconsistent on the name, we should stick with rootfull.

[NO NEW TESTS NEEDED] Existing tests should handle this and no tests for
machines exists yet.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-04-21 17:05:16 -04:00
Daniel J Walsh 80c0fceb24
Add support for --userns=nomap
From a security point of view, it would be nice to be able to map a
rootless usernamespace that does not use your own UID within the
container.

This would add protection against a hostile process escapping the
container and reading content in your homedir.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-04-21 15:29:04 -04:00
Aditya R 8080a5f8ec
Revert "container,inspect: convert Entrypoint to array instead of a string"
It seems this breaks older version of `podman-remote` users hence it
looks like this patch would be a better candidate for podman `5.0`

Problem
* Client with `4.0` cannot interact with a server of `4.1`

Plan this patch for podman `5.0`

This reverts commit 0cebd158b6.

Signed-off-by: Aditya R <arajan@redhat.com>
2022-04-22 00:58:40 +05:30
cdoern 5375401960 podman container clone -f
add the option -f to force remove the parent container if --destory is specified

resolves #13917

Signed-off-by: cdoern <cbdoer23@g.holycross.edu>
2022-04-21 15:00:32 -04:00
Chris Evich d24507c1ec
Fix upgrade tests assuming storage.conf exists
On F36 / podman 4, at the time of this commit there is no
`/etc/containers/storage.conf` installed by default.  Since the
test volume-mounts this file into the container, it was failing.  Fix
this by using a conditional volume-mount based on the file existing (or
not).

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-04-21 14:38:07 -04:00
Chris Evich c67d6a52c4
Fix using --network-backend on podman-remote
When this option was added to the e2e tests, there was no CI Automation
support for running remote tests w/ netavark.  When added, many
e2e test errors/failures are generated due to this option not being
valid for the remote client.  Fix this in the tests by conditionally
adding the option if the test is running the remote client.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-04-21 14:29:44 -04:00
OpenShift Merge Robot cb09c26c65
Merge pull request #13505 from rst0git/checkpoint-image-1
Add support for checkpoint image
2022-04-21 11:58:56 -04:00
Ed Santiago 97ee411465 system tests: add assert(), and start using it
Problem: the system test 'is()' checker was poorly thought out.
For example, there is no way to check for inequality or for
absence of a substring.

Solution, step 1: introduce new assert(), copied almost verbatim
from buildah, where it has been successful in addressing the
gaps in is().

The logical next step is to search the tests for 'die' and
for 'run', looking for negative assertions which we can
replace with assert(). There were a lot, and in the process
I found a number of ugly bugs in the tests themselves. I've
taken the liberty of fixing these.

Important note: at this time we have both assert() and is().
Replacing all instances of is() would be impossible to review.

Signed-off-by: Ed Santiago <santiago@redhat.com>
2022-04-20 16:14:42 -06:00