Commit Graph

4082 Commits

Author SHA1 Message Date
openshift-ci[bot] cf747399b1
Merge pull request #14370 from umohnani8/todo
Fix podman pod unpause TODO
2022-07-05 17:33:19 +00:00
openshift-ci[bot] 39fc5d1f4f
Merge pull request #14828 from saschagrunert/errors-libpod
libpod: switch to golang native error wrapping
2022-07-05 16:10:12 +00:00
Urvashi Mohnani 65d511c6d8 Fix podman pod unpaue TODO
Update the podman pod unpause to only show the paused
containers with autocomplete.
Fix a typo in the help command.
Update the unpause function to only attempt an unpause
on pasued pods instead of all the pods.
Update the tests accordingly.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-07-05 10:32:49 -04:00
openshift-ci[bot] 9539a89ee7
Merge pull request #14831 from giuseppe/fix-leak-connections-test
two minor tweaks to common_test.go
2022-07-05 14:25:58 +00:00
Sascha Grunert 251d91699d
libpod: switch to golang native error wrapping
We now use the golang error wrapping format specifier `%w` instead of
the deprecated github.com/pkg/errors package.

[NO NEW TESTS NEEDED]

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2022-07-05 16:06:32 +02:00
openshift-ci[bot] 340eeed0cb
Merge pull request #14626 from jakecorrenti/disable-docker-compose-health-check
Docker-compose disable healthcheck properly handled
2022-07-05 13:50:35 +00:00
openshift-ci[bot] 2c9f0753da
Merge pull request #14534 from jakecorrenti/docker-compose-update-network-mtu
(rootful) docker-compose now updates network MTU
2022-07-05 13:46:23 +00:00
openshift-ci[bot] 6315936f9a
Merge pull request #14805 from jakecorrenti/df-format-output
Podman system df JSON format outputs `Size` and `Reclaimable`
2022-07-05 13:34:45 +00:00
openshift-ci[bot] 02179c5686
Merge pull request #14830 from vrothberg/fix-14761
Sync: handle exit file
2022-07-05 13:26:45 +00:00
Jake Correnti 5633ef1d15 Docker-compose disable healthcheck properly handled
Previously, if a container had healthchecks disabled in the
docker-compose.yml file and the user did a `podman inspect <container>`,
they would have an incorrect output:

```
"Healthcheck":{
   "Test":[
      "CMD-SHELL",
      "NONE"
   ],
   "Interval":30000000000,
   "Timeout":30000000000,
   "Retries":3
}
```

After a quick change, the correct output is now the result:
```
"Healthcheck":{
   "Test":[
      "NONE"
   ]
}
```

Additionally, I extracted the hard-coded strings that were used for
comparisons into constants in `libpod/define` to prevent a similar issue
from recurring.

Closes: #14493

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-07-05 08:02:22 -04:00
Jake Correnti 488eb3b74c (rootful) docker-compose now updates network MTU
Previously, the following network block did not update using
docker-compose:

```
networks:
  default:
    driver: bridge
    driver_opts:
      mtu: 9000
```

In the API, the network options were previously not being handled when the
network was being created. I translated the docker options into podman
options, and added the options to the network.

When doing `podman network inspect <network>`, the results now contain
`"mtu": "9000"`

Fixes: #14482

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-07-05 07:54:09 -04:00
Jake Correnti 4fe7b8baf2 Podman system df JSON format outputs `Size` and `Reclaimable`
Previously, `podman system df --format "{{json .}}"` would not output
`Size` and `Reclaimable` like `podman system df` would.

```
{"Type":"Images","Total":5,"Active":0,"Size":39972240,"Reclaimable":39972240}
{"Type":"Containers","Total":0,"Active":0,"Size":0,"Reclaimable":0}
{"Type":"Local Volumes","Total":0,"Active":0,"Size":0,"Reclaimable":0}
```

Closes: #14769

Signed-off-by: Jake Correnti <jcorrenti13@gmail.com>
2022-07-05 07:38:08 -04:00
openshift-ci[bot] d1e1400747
Merge pull request #14829 from saschagrunert/errors-hack-test-utils
hack/test/utils: switch to golang native error wrapping
2022-07-05 11:37:12 +00:00
Valentin Rothberg b9aa475555 Sync: handle exit file
Make sure `Sync()` handles state transitions and exit codes correctly.
The function was only being called when batching which could render
containers in an unusable state when running concurrently with other
state-altering functions/commands since the state must be re-read from
the database before acting upon it.

Fixes: #14761
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-05 12:32:02 +02:00
Sascha Grunert 49cb288df3
hack/test/utils: switch to golang native error wrapping
We now use the golang error wrapping format specifier `%w` instead of
the deprecated github.com/pkg/errors package.

[NO NEW TESTS NEEDED]

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2022-07-05 12:13:33 +02:00
Giuseppe Scrivano 2da731a7ea
test: reduce sleep interval
there is no need to use such long sleep intervals for such cheap
operations like opening a connection or stat'ing a file.

Also make WaitForService() honor defaultWaitTimeout.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-07-05 11:36:06 +02:00
Giuseppe Scrivano c02f793bab
test: return immediately on connect
if the connection is successfull then return immediately instead of doing
all the iterations.  It also solves a problem where connections are
leaked since there are multiple Dial but only one Close.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-07-05 11:12:30 +02:00
Aditya R efe1176dd9
specgen,run: support running container from valid manifest list
Following PR adds support for running containers from a manifest list
present on localstorage. Before this PR podman only supports running
containers from valid images but not from manifest list.

So `podman run -it --platform <some> <manifest-list> command` should
become functional now and users should be able to resolve images on the
bases of provided `--platform` string.

Example
```
podman manifest create test
podman build --platform linux/amd64,linux/arm64 --manifest test .
podman run --rm --platform linux/arm64/v8 test uname -a
```

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-07-05 12:39:37 +05:30
Paul Holzinger 4c5b058e86
fix flake in aardvark tests
The retry logic in digshort() did not work because dig always exits with
0 even when the domain name is not found. To make it work we have to
check the standard output.

We work on fixing the underlying issue in aardvark/netavark but
this will take more time.

Fixes #14173
Fixes #14171

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-07-04 17:16:14 +02:00
openshift-ci[bot] a406b950e4
Merge pull request #14807 from eriksjolund/fix_read_only_spelling
[CI:DOCS] Fix spelling "read only" -> "read-only"
2022-07-04 07:35:42 +00:00
Giuseppe Scrivano 8106568ca2
test: drop pod-create --device-read-bps test
the test is not doing what it believes to do.  The containers are not
supposed to be joining the infra container cgroup.

In addition, the result is validated only on cgroup v1 systems (that
are not used in the CI).

We may want to add it back, or a variant of it, once the
--device-read-bps option applies to the pod parent cgroup.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-07-03 22:56:30 +02:00
Erik Sjölund 24fcfb5d9e Fix spelling "read only" -> "read-only"
Signed-off-by: Erik Sjölund <erik.sjolund@gmail.com>
2022-07-02 08:37:43 +02:00
Charlie Doern b92149e2a8 podman pod create --memory
using the new resource backend, implement podman pod create --memory which enables
users to modify memory.max inside of the parent cgroup (the pod), implicitly impacting all
children unless overriden

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-07-01 13:44:32 -04:00
openshift-ci[bot] b00e65aa9c
Merge pull request #14799 from vrothberg/fix-build
fix build
2022-07-01 14:42:03 +00:00
openshift-ci[bot] 21cd3b2ed2
Merge pull request #14798 from flouthoc/overlay-mount-path-abs
overlay,mount: convert source to absolute path for `overlay` mounts of paths
2022-07-01 12:37:10 +00:00
Valentin Rothberg 7131c84723 fix build
PR containers/podman/pull/14449 had an outdated base.  Merging it broke
builds.

[NO NEW TESTS NEEDED]

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-07-01 14:20:31 +02:00
openshift-ci[bot] a737412eeb
Merge pull request #14795 from giuseppe/fix-wildcard-major-device-cgroup
specgen: fix parsing of cgroup devices rule
2022-07-01 11:13:49 +00:00
openshift-ci[bot] dc2a93421b
Merge pull request #14788 from vrothberg/rename-template
podman-play-kube template: rename to podman-kube
2022-07-01 10:55:42 +00:00
Aditya R d6678adc92
overlay,mount: convert lowerdir to absolute path for overlay mounts of path
When mounting paths as overlay mounts we end up passing source as is to
lowerdir options, resolve all relative paths in such cases for overlay
mounts.

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-07-01 14:19:01 +05:30
openshift-ci[bot] 96e72d90b8
Merge pull request #14449 from cdoern/podVolumes
podman volume create --opt=o=timeout...
2022-07-01 08:46:11 +00:00
Giuseppe Scrivano 891dfd3a8f
specgen: fix parsing of cgroup devices rule
Fix the parse for the cgroup devices rule to correctly handle the
wildcard syntax for the device major.

Also make sure the device major and minor are not negative numbers.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-07-01 09:28:18 +02:00
Valentin Rothberg c6fb533ca6 podman-play-kube template: rename to podman-kube
With the upcoming plans of introducing a podman-kube command with
various subcommands, rename the podman-play-kube systemd template
to podman-kube before releasing it.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-06-30 17:09:51 +02:00
Aditya R 7bbfb3eb0d
api,images: add support for LookupManifest to Image remove API
ImagesBatchRemoval and ImageRemoval now honors and accepts
`LookupManifest` parameter which further tells libimage to resolve to
manifest list if it exists instead of actual image.

Following PR also makes `podman-remote manifest rm` functional which was
broken till now.

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

Signed-off-by: Aditya R <arajan@redhat.com>
2022-06-30 14:56:42 +05:30
openshift-ci[bot] 2cc3f127f4
Merge pull request #14720 from sstosh/rm-option
Fix: Prevent OCI runtime directory remain
2022-06-29 19:51:53 +00:00
openshift-ci[bot] d6cdb996bc
Merge pull request #14706 from ashley-cui/rootmach
Only allow Rootless runs of Podman Machine
2022-06-29 19:32:26 +00:00
Ashley Cui d9ff0fd15d Only allow Rootless runs of Podman Machine
Podman Machine crashes if run as root. When creating the machine, we write the ignition so that the UID of the core user matches the UID of the user on the host. We by default, create the root user on the machine with UID 0. If the user on the host is root, the core UID and the Root UID collide, causing a the VM not to boot.

[NO NEW TESTS NEEDED]

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-06-29 09:19:09 -04:00
openshift-ci[bot] f0e8904e0d
Merge pull request #14755 from cdoern/system
fix volume reporting in system df
2022-06-28 19:14:00 +00:00
openshift-ci[bot] 60c9aeabab
Merge pull request #14717 from ZeyadYasser/fix-restore-runtime-check
Fix runtime check during restore
2022-06-28 19:07:52 +00:00
openshift-ci[bot] d8f197cc14
Merge pull request #14400 from cdoern/scp
podman image scp remote support & podman image scp tagging
2022-06-28 17:46:12 +00:00
Zeyad Yasser 79a38a2c6a
Add test for restore runtime verification using non-default runtime
Runtime verification test for container checkpoint with export
used the default runtime for test which causes test to always
pass. Problem rises when using non-default runtime, then doing
a restore. This test forcse using a non-default runtime during
container creation.

Edge case:
	1. Default runtime is crun
	2. Container is created with runc
	3. Checkpoint without setting --runtime into archive
	4. Restore without setting --runtime from archive

It should be expected that podman identifies runtime from the
checkpoint archive.

Signed-off-by: Zeyad Yasser <zeyady98@gmail.com>
2022-06-28 16:14:47 +02:00
Charlie Doern 6c4c050d3d fix volume reporting in system df
currently, podman system df incorrectly calculates the reclaimable storage for
volumes, using a cumulative reclaimable variable that is incremented and placed into each
report entry causing values to rise above 100%.

Switch this variables to be in the context of the loop, so it resets per volume just like the size variable does.

resolves #13516

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-28 10:09:38 -04:00
openshift-ci[bot] 50fa651a4e
Merge pull request #14700 from shuttle-hq/bug/docker-compat-initialized
Docker compat returning unknown "initialized" for `status.status`
2022-06-28 14:07:04 +00:00
openshift-ci[bot] 8267cd3c51
Merge pull request #14734 from giuseppe/copyup-switch-order
volume: add two new options copy and nocopy
2022-06-28 13:57:16 +00:00
chesedo cc49146332 Docker compat returning unknown "initialized" for `status.status`
Some background for this PR is in discussion #14641. In short, ever so often a container inspect will return a `status.status` of `initialized` from the Docker compat socket.

From the discussion I found these lines which tries to fix a "configured" status to "created".
c936d1e611/pkg/api/handlers/compat/containers.go (L291-L294)

However, commit 141de86862 (Revamp Libpod state strings for Docker compat) removed the "configured" return value from the `String()` method called on line 291 above. Thus, making the `if` check redundant as it will never hit. But the same commit also introduces a return for "initialized" which this `if` should probably have been adapted for.

Signed-off-by: Pieter Engelbrecht <pieter@shuttle.rs>
2022-06-28 15:50:45 +02:00
cdoern 6d3520e8b7 podman image scp remote support & podman image scp tagging
add support for podman-remote image scp as well as direct access via the API. This entailed
a full rework of the layering of image scp functions as well as the usual API plugging and type creation

also, implemented podman image scp tagging. which makes the syntax much more readable and allows users t tag the new image
they are loading to the local/remote machine:

allow users to pass a "new name" for the image they are transferring
`podman tag` as implemented creates a new image im `image list` when tagging, so this does the same
meaning that when transferring images with tags, podman on the remote machine/user will load two images
ex: `podman image scp computer1::alpine computer2::foobar` creates alpine:latest and localhost/foobar on the remote host

implementing tags means removal of the flexible syntax. In the currently released podman image scp, the user can either specify
`podman image scp source::img dest::` or `podman image scp dest:: source::img`. However, with tags this task becomes really hard to check
which is the image (src) and which is the new tag (dst). Removal of that streamlines the arg parsing process

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2022-06-28 08:54:19 -04:00
openshift-ci[bot] c66a489b75
Merge pull request #14741 from giuseppe/pod-ps-no-race
pod: ps does not race with rm
2022-06-28 11:41:47 +00:00
Giuseppe Scrivano 0e03a64f99
pod: ps does not race with rm
the "pod ps" command first retrieves the list of all pods, then
iterates over the list to inspect each pod.  This introduce a race
since a pod could be deleted in the meanwhile by another process.

Solve it by ignoring the define.ErrNoSuchPod error.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-28 10:38:12 +02:00
Boaz Shuster 3b10c1b78a Use Regexp in volume ls --filter name
Signed-off-by: Boaz Shuster <boaz.shuster.github@gmail.com>
2022-06-27 21:34:39 +03:00
Giuseppe Scrivano aada13f244
volume: new options [no]copy
add two new options to the volume create command: copy and nocopy.

When nocopy is specified, the files from the container image are not
copied up to the volume.

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

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-06-27 20:22:20 +02:00
openshift-ci[bot] 9c4b8a29b0
Merge pull request #14713 from Luap99/volume-plugin
add podman volume reload to sync volume plugins
2022-06-27 17:55:19 +00:00