17374 Commits

Author SHA1 Message Date
7d2a19ce67 Merge pull request #16631 from andrei-n-cosma/fix-secret-unmarshal
Fixes secret marshaling for kube play. Merge stringData with data for secrets.
2022-12-09 04:48:42 -05:00
15fca66e78 Merge pull request #16777 from Luap99/build-remote-volume
podman-remote build add --volume support
2022-12-09 04:32:57 -05:00
02b7866e60 Merge pull request #16750 from umohnani8/teardown
Cleanup kube play workloads if error happens
2022-12-09 03:31:20 -05:00
9f6cf50d52 podman-remote build add --volume support
Just like podman-remote run users should still be able to set volumes,
of course the source must be on the server machine but this is already
the case for podman machine for example.

Fixes #16694

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-12-08 17:10:46 +01:00
2f29639bd3 Cleanup kube play workloads if error happens
If an error happening while playing a kube yaml,
clean up any pods, containers, and volumes that might
have been created before the error was hit.
This improves the user experience for when they go to
re-run the same yaml with their fixes and podman doesn't
complain about any existing workloads from the previously
failed run.

Suppress the clean up output when clean up happens after an
error as the user doesn't need to see or know about that.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2022-12-08 10:30:44 -05:00
db4d018711 Fixes secret (un)marshaling for kube play.
Fixes e2e tests, remove '\n' from base64 encoded data.
Correct test to check that data in secret mounted file is decoded.

Closes #16269
Closes #16625

Signed-off-by: Andrei Natanael Cosma <andrei@intersect.ro>
2022-12-08 10:33:44 +01:00
6e2e9ab227 Merge pull request #16709 from vrothberg/fix-16515
kube sdnotify: run proxies for the lifespan of the service
2022-12-07 18:10:31 -05:00
22790b63d0 Merge pull request #16761 from ashley-cui/machelper
Makefile: Add podman-mac-helper to darwin client zip
2022-12-07 16:32:05 -05:00
4abc164f56 Merge pull request #16751 from rhatdan/you
[CI:DOCS] Remove 'you' from man pages
2022-12-07 12:36:57 -05:00
4096d04123 Merge pull request #16569 from rst0git/run-checkpoint-image-v2
Add support for checkpoint images with 'podman run'
2022-12-07 11:39:37 -05:00
5b6a03fbab Merge pull request #16763 from sstosh/e2e-http_proxy
e2e: keeps the http_proxy value
2022-12-07 09:30:08 -05:00
7665bbc127 Remove 'you' from man pages
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2022-12-07 09:29:29 -05:00
f1e167d584 Merge pull request #16770 from containers/dependabot/go_modules/test/tools/golang.org/x/tools-0.4.0
build(deps): bump golang.org/x/tools from 0.3.0 to 0.4.0 in /test/tools
2022-12-07 09:27:03 -05:00
1bfaf51941 build(deps): bump golang.org/x/tools from 0.3.0 to 0.4.0 in /test/tools
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.3.0 to 0.4.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.3.0...v0.4.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-07 12:09:43 +00:00
06c3b1d499 Merge pull request #16764 from vrothberg/test-docs
[CI:DOCS] test/README.md: run tests with podman-remote
2022-12-07 06:34:40 -05:00
97c56eef6f [CI:DOCS] test/README.md: run tests with podman-remote
Drop a note on how to run single tests with the remote client.

Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-12-07 09:25:32 +01:00
8b87665f23 e2e: keeps the http_proxy value
In a proxy environment, http_proxy needs to keep
the value to use a proxy.

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-12-07 16:30:32 +09:00
7784f1d165 Merge pull request #16758 from Luap99/nv-ipam-none
test/e2e: enable "podman run with ipam none driver" for nv
2022-12-06 20:02:43 -05:00
3a68b90dc1 Merge pull request #16742 from cevich/add_volume_warning
[CI:DOCS] Add warning about --opts,o with mount's -o
2022-12-06 19:59:57 -05:00
1b62e9049e Merge pull request #16684 from sstosh/e2e-proxy
e2e: fix e2e tests in proxy environment
2022-12-06 19:57:10 -05:00
883ff665b2 Merge pull request #16748 from ygalblum/quadlet_kube_userns
Quadlet Kube: Add support for userns flag
2022-12-06 18:03:41 -05:00
2e9eb170c6 Merge pull request #16668 from karta0807913/main
fix an override logic in Inherit function
2022-12-06 17:58:31 -05:00
9b702460e1 Makefile: Add podman-mac-helper to darwin client zip
As well as as small fix for zipping the correct folder when building on Mac

Signed-off-by: Ashley Cui <acui@redhat.com>
2022-12-06 15:39:58 -05:00
73e6539f97 Merge pull request #16757 from cevich/fix_job_sequence
[skip-ci] GHA/Cirrus-cron: Fix execution order
2022-12-06 12:26:40 -05:00
c7b936a415 test/e2e: enable "podman run with ipam none driver" for nv
This should work since nv v1.1.

Fixes #13931

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-12-06 18:25:34 +01:00
f218a4617b Merge pull request #16740 from ygalblum/network-create-options
Update containers common package
2022-12-06 10:56:47 -05:00
7cdf37624e Merge pull request #16747 from Luap99/ipvlan-parent
network create: support "-o parent=XXX" for ipvlan
2022-12-06 10:54:11 -05:00
45f8b1ca9e [skip-ci] GHA/Cirrus-cron: Fix execution order
Fairly universally, the last Cirrus-Cron job is set to fire off at
22:22 UTC.  However, the re-run of failed jobs GHA workflow was
scheduled for 22:05, meaning it will never re-run the last cirrus-cron
job should it fail.

Re-arrange the execution order so as to give plenty of time between the
last cirrus-cron job starting, the auto-re-run attempt, and the final
failure-check e-mail.

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-12-06 10:38:10 -05:00
4a8d953425 Merge pull request #16371 from alexlarsson/transient-store
Support transient store mode
2022-12-06 09:39:19 -05:00
293f1cd14d Merge pull request #16713 from alexlarsson/quadlet-drop-cid-remove
quadlet: Drop ExecStartPre=rm %t/%N.cid
2022-12-06 09:00:57 -05:00
53357b0f95 Merge pull request #16749 from Luap99/healthcheck
disable healthchecks automatically on non systemd systems
2022-12-06 08:58:24 -05:00
4fa307f149 kube sdnotify: run proxies for the lifespan of the service
As outlined in #16076, a subsequent BARRIER *may* follow the READY
message sent by a container.  To correctly imitate the behavior of
systemd's NOTIFY_SOCKET, the notify proxies span up by `kube play` must
hence process messages for the entirety of the workload.

We know that the workload is done and that all containers and pods have
exited when the service container exits.  Hence, all proxies are closed
at that time.

The above changes imply that Podman runs for the entirety of the
workload and will henceforth act as the MAINPID when running inside of
systemd.  Prior to this change, the service container acted as the
MAINPID which is now not possible anymore; Podman would be killed
immediately on exit of the service container and could not clean up.

The kube template now correctly transitions to in-active instead of
failed in systemd.

Fixes: #16076
Fixes: #16515
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
2022-12-06 14:15:11 +01:00
7d16c2b69e Update containers common package
The new version adds NetworkCreateOptions. For now pass nil

[NO NEW TESTS NEEDED]

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2022-12-06 13:52:28 +02:00
75f4215717 podman manpage: Use man-page links instead of file names
This changes references to `/etc/containers/storage.conf` (and similar) to
links to `containers-storage.conf(5)`, as there are alternative locations
for this file.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-12-06 09:54:50 +01:00
86f4bd4f54 e2e: fix e2e tests in proxy environment
- podman generate kube inheritents the proxy environment valiable by default.
  Therefore, Env field is not empty if it is set.

- systemd-socket-acrivate needs to pass an proxy environment variable.

- busybox wget with an proxy doesn't work.
  Network tests should use not wget but curl.
  https://gitlab.alpinelinux.org/alpine/aports/-/issues/10446

Signed-off-by: Toshiki Sonoda <sonoda.toshiki@fujitsu.com>
2022-12-06 11:14:19 +09:00
4134a37233 Fix test
Signed-off-by: karta0807913 <karta0807913@gmail.com>
2022-12-06 01:25:54 +00:00
28774f18c5 disable healthchecks automatically on non systemd systems
The podman healthchecks are implemented using systemd timers, this works
great but it will never work on non systemd distros. Currently the logic
always assumes systemd is available and will fail with an error, so users
are forced to always run with `--no-healthcheck` to disable healthchecks
that are defined in an image for example. This is annoying and IMO
unnecessary, we should just default to no healthcheck on these systems.

First, use the systemd build tag to disable it at build time if this tag
is not used.
Second, use make sure systemd is used as init before trying
to use healthchecks. This could be the case when we are run in a container.

[NO NEW TESTS NEEDED] We do not have any non systemd VMs in CI AFAIK.

Fixes #16644

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-12-05 20:58:30 +01:00
1ea00ebda1 Quadlet Kube: Add support for userns flag
Move the handling of userns keys from ConvertContainer to a separate method
Adjust the method according to the different supported values
Use the new method in both ConvertContainer and ConvertKube
Pass isUser to ConvertKube as well
Add tests

Signed-off-by: Ygal Blum <ygal.blum@gmail.com>
2022-12-05 21:26:23 +02:00
68e51834a9 Merge pull request #16738 from ygalblum/quadlet_kube_relative_path
Quadlet Kube: Add support for relative path for YAML file
2022-12-05 14:21:10 -05:00
2f2df58fc9 Merge pull request #16745 from Luap99/docker-compose-mac
compat API: allow MacAddress on container config
2022-12-05 13:57:53 -05:00
c942f77887 Merge pull request #16581 from mtrmac/modified-test
Update c/storage after https://github.com/containers/storage/pull/1436
2022-12-05 13:16:57 -05:00
07a3868356 [CI:DOCS] Add warning about --opts,o with mount's -o
Ref: https://github.com/containers/podman/issues/16576

Signed-off-by: Chris Evich <cevich@redhat.com>
2022-12-05 13:08:49 -05:00
93d2ec148c Add podman system prune --external
This just calls GC on the local storage, which will remove any leftover
directories from previous containers that are not in the podman db anymore.
This is useful primarily for transient store mode, but can also help in
the case of an unclean shutdown.

Also adds some e2e test to ensure prune --external works.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-12-05 18:09:21 +01:00
f1dbfda807 Add some tests for transient store
Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-12-05 18:09:21 +01:00
e74b3f24e1 runtime: In transient_store mode, move bolt_state.db to rundir
This brings a performance improvement to `podman run` on top of the
other transient_store improvements in containers/storage:

Transient mode without transient bolt_db:

Benchmark 1: bin/podman run --transient-store=true --rm --pull=never --network=host --security-opt seccomp=unconfined fedora true
  Time (mean ± σ):     130.6 ms ±   5.8 ms    [User: 44.4 ms, System: 25.9 ms]
  Range (min … max):   122.6 ms … 143.7 ms    21 runs

Transient mode with transient bolt_db:

Benchmark 1: bin/podman run --transient-store=true --rm --pull=never --network=host --security-opt seccomp=unconfined fedora true
  Time (mean ± σ):     100.3 ms ±   5.3 ms    [User: 40.5 ms, System: 24.9 ms]
  Range (min … max):    93.0 ms … 111.6 ms    29 runs

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-12-05 18:09:21 +01:00
25d9af8f42 runtime: Handle the transient store options
This handles the transient store options from the container/storage
configuration in the runtime/engine.

Changes are:
 * Print transient store status in `podman info`
 * Print transient store status in runtime debug output
 * Add --transient-store argument to override config option
 * Propagate config state to conmon cleanup args so the callback podman
   gets the same config.

Note: This doesn't really change any behaviour yet (other than the changes
in containers/storage).

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-12-05 18:09:21 +01:00
56115d5e5b libpod: Move the creation of TmpDir to an earlier time
Later changes will need to access it earlier, so move its creation to
just after the creation of StaticDir.

Note: For whatever reason this we created twice before, but we now
only do it once.

Signed-off-by: Alexander Larsson <alexl@redhat.com>
2022-12-05 18:09:21 +01:00
c9961e18c0 network create: support "-o parent=XXX" for ipvlan
Just like macvlan the ipvlan driver accepts a specific parent interface.

Fixes #16621

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-12-05 18:02:46 +01:00
2f5025a2d7 compat API: allow MacAddress on container config
docker-compose sets the mac address in the container config and not the
network endpoint config. This is ugly when you have more than one
network, in this case docker just chooses the first network.

Fixes #16411

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-12-05 16:52:36 +01:00
41af424cd8 Merge pull request #16739 from giuseppe/no-chown-idmap
runtime: do not chown idmapped volumes
2022-12-05 10:21:30 -05:00