Commit graph

3948 commits

Author SHA1 Message Date
OpenShift Merge Robot
be255287c9
Merge pull request #14292 from vrothberg/fix-14283
auto update: create an event
2022-05-23 10:12:19 -04:00
OpenShift Merge Robot
e11d8d4650
Merge pull request #14266 from tupyy/add-blockdevice-play-kube
Expose block and character devices with play kube
2022-05-23 10:06:07 -04:00
Valentin Rothberg
c984956f93 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-23 15:08:15 +02:00
Valentin Rothberg
d66288315d auto update: create an event
Create an auto-update event for each invocation, independent if images
and containers are updated or not.  Those events will be indicated in
the events already but users will now know why.

Fixes: #14283
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-23 14:11:29 +02:00
Valentin Rothberg
633d5f1f8b fix --init with /dev bind mount
The init binary until now has been bind-mounted to /dev/init which
breaks when bind-mounting to /dev.  Instead mount the init to
/run/podman-init.  The reasoning for using /run is that it is already
used for other runtime data such as secrets.

Fixes: #14251
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-23 13:59:05 +02:00
Cosmin Tupangiu
4960a17a56
fix tests by randomize the device folder name
e2e tests tends to fail when running with multiple nodes because
the same device folder name is used accross all nodes

Signed-off-by: Cosmin Tupangiu <cosmin@redhat.com>
2022-05-23 10:33:12 +02:00
Jhon Honce
5b79cf15a0 Swagger refactor/cleanup
* Remove duplicate or unused types and constants
* Move all documetation-only models and responses into swagger package
* Remove all unecessary names, go-swagger will determine names from
  struct declarations
* Use Libpod suffix to differentiate between compat and libpod models
  and responses. Taken from swagger:operation declarations.
* Models and responses that start with lowercase are for swagger use
  only while uppercase are used "as is" in the code and swagger comments
* Used gofumpt on new code

```release-note

```

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2022-05-19 15:24:18 -07:00
Valentin Rothberg
b22143267b linter: enable unconvert linter
Detects unneccessary type conversions and helps in keeping the code base
cleaner.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-19 13:59:15 +02:00
OpenShift Merge Robot
7093885df7
Merge pull request #14228 from rhatdan/api
Deleting an n use image should return conflict not system error
2022-05-18 11:48:06 -04:00
OpenShift Merge Robot
12964c7b93
Merge pull request #14256 from vrothberg/run-1287
k8systemd: run k8s workloads in systemd
2022-05-18 09:39:30 -04:00
Cosmin Tupangiu
f5c8c09113
add tests and fix bug when char device pass the test as block device
- add test
- fix bug when a character device set in a volume as a block device
  is seen as block device in _pkg/specgen/generate/kube/volume.go_.
  At this stage the type does not matter much because the devices are
recreated at lower layer but the bug allowed a CharDevice volume to be
passed to lower layer as a BlockDevice.

Signed-off-by: Cosmin Tupangiu <cosmin@redhat.com>
2022-05-18 10:46:45 +02:00
OpenShift Merge Robot
105c6c7dd1
Merge pull request #14254 from flouthoc/api-allow-remote
api: make no-op `remote` functional in `/libpod/build`
2022-05-17 14:19:45 +02:00
Valentin Rothberg
8684d41e38 k8systemd: run k8s workloads in systemd
Support running `podman play kube` in systemd by exploiting the
previously added "service containers".  During `play kube`, a service
container is started before all the pods and containers, and is stopped
last.  The service container communicates its conmon PID via sdnotify.

Add a new systemd template to dispatch such k8s workloads.  The argument
of the template is the path to the k8s file.  Note that the path must be
escaped for systemd not to bark:

Let's assume we have a `top.yaml` file in the home directory:
```
$ escaped=$(systemd-escape ~/top.yaml)
$ systemctl --user start podman-play-kube@$escaped.service
```

Closes: https://issues.redhat.com/browse/RUN-1287
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-17 10:18:58 +02:00
Aditya R
6f9155cbb3
api: make no-op remote functional in /libpod/build
Podman API `libpod/build` accepts paramemter `remote` which overrides
`dockerfile` but currently parameter is no-op. Following commit adds
support for `remote` parameter in libpod API.

See: https://docs.podman.io/en/v3.2.3/_static/api.html#operation/ImageBuildLibpod
Closes: https://github.com/containers/podman/issues/13831

Signed-off-by: Aditya R <arajan@redhat.com>
2022-05-16 22:01:39 +05:30
Daniel J Walsh
ee782fcb70
Deleting an n use image should return conflict not system error
Fixes: https://github.com/containers/podman/issues/14208

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-16 09:59:19 -04:00
OpenShift Merge Robot
0c7124289f
Merge pull request #14232 from vrothberg/bz-2083997
[BZ #2083997] pod: build pause image in custom user NS
2022-05-16 13:19:32 +02:00
Valentin Rothberg
c45d51899a [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.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2083997
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-13 15:41:28 +02:00
OpenShift Merge Robot
53c39cf256
Merge pull request #14205 from rhatdan/VENDOR
Vendor in latest containers/common
2022-05-13 11:58:26 +02:00
Daniel J Walsh
2b03a1088a
Vendor in latest containers/common
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-05-12 17:36:44 -04:00
Daniel J Walsh
b8103640a2
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-05-12 16:31:13 -04:00
Daniel J Walsh
81fc9f1dea
Merge pull request #14159 from vrothberg/service-container
play kube: service container
2022-05-12 13:35:56 -04:00
Valentin Rothberg
03af8213ce 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-05-12 11:11:37 +02:00
Valentin Rothberg
840c120c21 play kube: service container
Add the notion of a "service container" to play kube.  A service
container is started before the pods in play kube and is (reverse)
linked to them.  The service container is stopped/removed *after*
all pods it is associated with are stopped/removed.

In other words, a service container tracks the entire life cycle
of a service started via `podman play kube`.  This is required to
enable `play kube` in a systemd unit file.

The service container is only used when the `--service-container`
flag is set on the CLI.  This flag has been marked as hidden as it
is not meant to be used outside the context of `play kube`.  It is
further not supported on the remote client.

The wiring with systemd will be done in a later commit.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-12 10:51:13 +02:00
Valentin Rothberg
ecf0177a01 vendor c/common@main
In hope to fix a CI flake.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-05-12 10:51:13 +02:00
Giuseppe Scrivano
60258925a8
test: update fedora toolbox image
f32 is already EOL.  Let's use the latest version.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2022-05-11 20:44:37 +02:00
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