21721 Commits

Author SHA1 Message Date
9bb191df51 [CI:MACHINE]Podman5 QEMU refactor
The following PR is the leading PR for refactoring podman machine with
the following goals:

* less duplication/more re-use
* common configuration file between providers
* more consistentency in how machines are handled by providers

The goal of this PR is the rough refactor.  There are still rough spots
for sure, specifically around the podman socket and pipe.  This
implemention is only for Linux. All other providers are still present
but will not compile or work.  This is why tests for them have been
temporarily suspended.

The ready socket code is another area that needs to be smoothed over.
Right now, the ready socket code is still in QEMU.  Preferably it would
be moved to a generic spot where all three approaches to readiness
socket use can be defined.

It should also be noted:

* all machine related tests pass.
* make validate for Linux passes
* Apple QEMU was largely removed
* More code pruning is possible; will become clearer when other
  providers are complete.

the dir pkg/machine/p5 is not permanent.  i had to seperate this from
machine initially due to circular import problems.  i think when all
providers are done (or nearly done), it can be placed and named
properly.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-07 09:18:36 -06:00
caee76ed57 Merge pull request #20790 from lsm5/rpm-remove-dnsname
[CI:BUILD] rpm: remove dnsname
2024-02-07 15:04:43 +00:00
b9bcfa4749 podman5 machine reconfig 1
this is a logical place to get changes upstream before they grow out of
control.  this pr is the first in an effort to deduplicate machine code
and streamline code flow.

a lot of code is simply moved to eliminate circular imports.  names and
specific paths can ultimately be changed.  i dont like some of the
descriptive interface names, etc.  ultimately, i think once we have the
"old" code sanitized, we can re-use some of those.

clearly some of what is in here is temporary and will either be deleted,
changed, or moved again as this effort comes to a close.

right now, the machine code does not use any of the "new" code.  you
will see in `init` and `rm` some commented out code that hooks it. i'm
afraid things will get worse before they get better (way worse).

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-07 08:17:43 -06:00
c89dd4a92f Use tmpfs mounts when creating a memory-backed emptyDir volume
Signed-off-by: Andre Marianiello <andremarianiello@users.noreply.github.com>
2024-02-07 08:17:43 -06:00
3cf2f8ccf4 Handle more states during refresh
We were preserving ContainerStateExited, which is better than
nothing, but definitely not correct. A container that ran at any
point during the last boot should be moved to Exited state to
preserve the fact that they were run at least one. This means we
have to convert Running, Stopped, Stopping, Paused containers to
exited as well.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-07 08:33:56 -05:00
77847bd67a docs: make --seccomp=profile.json clearer
There are not only allowed syscalls, also blocked ones or handled
differently.

[CI:DOCS]

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2024-02-07 13:16:35 +01:00
6ca6184ed6 gomod: Update containers/psgo to 1.9.0
This solves an issue with a non-existing module:

```
$ go mod tidy
[...]
github.com/mitchellh/osext@v0.0.0-20151018003038-5e2d6d41470f: invalid version
```

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
2024-02-07 12:31:35 +01:00
6b592bd4e4 Merge pull request #21524 from andremarianiello/memory-emptydir
Use tmpfs mounts when creating a memory-backed emptyDir volume
2024-02-07 06:46:27 +00:00
a8b2256cc1 Set interface name to the network_interface name for macvlan and ipvlan networks
When interface_name attribute in containers.conf file is set to "device", then set interface names inside containers same as the network_interface names of the respective network.

The change applies to macvlan and ipvlan networks only. The interface_name attribute value has no impact on any other types of networks.

If the interface name is set in the user request, then that takes precedence.

Fixes: #21313

Signed-off-by: Vikas Goel <vikas.goel@gmail.com>
2024-02-06 19:05:16 -08:00
f4f96a226f Merge pull request #21518 from Luap99/strongunits
vendor: update c/common + libhvee to latest main and use pkg/strongunits from c/common
2024-02-07 01:46:06 +00:00
6e0decbe03 Send container stats over API on a per-interface basis
This mirrors how the Docker API handles things, allowing us to be
more compatible with Docker and more verbose on the Libpod API.
Stats are given as per network interface in the container, but
still aggregated for `podman stats` and `podman pod stats`
display (so the CLI does not change, only the Libpod and Compat
APIs).

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-06 17:05:07 -05:00
9983e87440 Remove leftover autoremove containers during refresh
During system shutdown, Podman should go down gracefully, meaning
that we have time to spawn cleanup processes which remove any
containers set to autoremove. Unfortunately, this isn't always
the case. If we get a SIGKILL because the system is going down
immediately, we can't recover from this, and the autoremove
containers are not removed.

However, we can pick up any leftover autoremove containers when
we refesh the DB state, which is the first thing Podman does
after a reboot. By detecting any autoremove containers that have
actually run (a container that was created but never run doesn't
need to be removed) at that point and removing them, we keep the
fresh boot clean, even if Podman was terminated abnormally.

Fixes #21482

[NO NEW TESTS NEEDED] This requires a reboot to realistically
test.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-06 17:03:36 -05:00
43a01d7dc2 Temporarily ignore windows-linting failures
As of this commit, there are several pages worth of lint findings for
windows.  Once they're all addressed, this commit may be reverted to
enable continuous checking.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-06 16:28:38 -05:00
defbf42376 Lint before windows-cross build
Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-06 16:28:38 -05:00
d44bafc3c4 Reimplement lint with improved compatibility
Specifically, Darwin's bash is very old so it doesn't support newer
features like `declare -A`.  Reduce the complexity of the script
so that it can be used for all platforms.  Comment heavily regarding the
scripts various execution contexts to prevent developers relying on
advanced features for any future modifications.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-06 16:28:38 -05:00
c7910e75e3 Show network name network events with podman -remote events
Fixes: https://github.com/containers/podman/issues/21311

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-02-06 15:43:05 -05:00
22b1650619 Merge pull request #21530 from Luap99/netavark-skip
test/e2e: unskip netavark macvlan/ipvlan tests
2024-02-06 19:21:05 +00:00
46fe7ef3bb use pkg/strongunits from c/common
The code has been moved to c/common so it can be shared with libhvee.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-06 16:39:16 +01:00
5de4bd5d13 vendor: update c/common + libhvee to latest main
Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-06 16:39:02 +01:00
a997d7d819 test/e2e: unskip netavark macvlan/ipvlan tests
These should all work with the latest netavark. The ipvlan case needs a
subnet because it does not support DHCP.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-06 15:49:34 +01:00
855a7cf0f4 Merge pull request #21413 from cevich/machine_cron
Include machine-tests in cirrus-cron jobs
2024-02-06 14:41:03 +00:00
75e6564138 Merge pull request #21497 from vikas-goel/volsfrom
Use semi-colon as the field separator for internal volumes-from inspect annotation
2024-02-06 14:35:34 +00:00
f439f4e9da Merge pull request #21431 from lsm5/cgroupv1-warn
Warn if cgroups-v1
2024-02-06 14:13:35 +00:00
7d15bc2efb fix userns + restart policy with slirp4netns
Currently we deadlock in the slirp4netns setup code as we try to
configure an non exissting netns. The problem happens because we tear
down the netns in the userns case correctly since commit bbd6281ecc but
that introduces this slirp4netns problem. The code does a proper new
network setup later so we should only use the short cut when not in a
userns.

Fixes #21477

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-06 13:50:07 +01:00
fcae702205 Reuse timezone code from containers/common
Replaces: https://github.com/containers/podman/pull/21077

[NO NEW TESTS NEEDED] Existing tests should handle this.

Signed-off-by: Sohan Kunkerkar <sohank2602@gmail.com>
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-02-06 07:09:16 -05:00
85904e01f3 Vendor in containers/common
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2024-02-06 07:09:16 -05:00
01a8539ef0 Warn if cgroups-v1
Podman v5 will not support cgroups-v1. This commit will print a warning
if it detects a cgroups-v1 system. The warning can be hidden by setting
envvar `PODMAN_CGROUPSV1_WARNING`.

This warning is patched out for RHEL 9 builds as cgroups-v1 will still
be supported on RHEL 9 systems.

Resolves: https://issues.redhat.com/browse/RUN-1957

[NO NEW TESTS NEEDED]

Co-authored-by: Ed Santiago <santiago@redhat.com>
Co-authored-by: Sascha Grunert <sgrunert@redhat.com>
Co-authored-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Lokesh Mandvekar <lsm5@redhat.com>
2024-02-06 16:18:05 +05:30
a2f0a44501 Merge pull request #21410 from ashley-cui/cnici
Do not test CNI in CI
2024-02-06 10:41:48 +00:00
8be1ce296a Merge pull request #21501 from kanielrkirby/correct-stars-markdown
[CI:DOCS] Corrected markdown documentation for `--stars`
2024-02-05 22:02:48 +00:00
d3281cf887 Use tmpfs mounts when creating a memory-backed emptyDir volume
Signed-off-by: Andre Marianiello <andremarianiello@users.noreply.github.com>
2024-02-05 13:24:07 -08:00
2eee3cd812 Corrected markdown documentation for --stars
The `--stars` option was incorrectly documented as meaning
the number of stars to filter by. This has been corrected
to indicate that it is the minimum number of stars to filter
by.

Tweaked wording of podman-search.md stars filter text

Signed-off-by: Kaniel Kirby <piratey7007@runbox.com>
2024-02-05 11:37:01 -06:00
35d1f12213 make podman pod inspect output a json array
Just like all the other inspect commands that accept multiple args we
should just make podman pod inspect output a json array.
This makes the code more consistent and removes the extra workaround
which was needed before to support this.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-05 17:26:55 +01:00
26cd01ee51 Do not test CNI in CI
CNI is deprecated and is build tagged out for 5.0. Don't test it in our CI.
This commit also disables upgrade tests for now - those need more work since the old version of Podman only uses CNI. Upgrade tests will be re-vamped in a later commit.
Signed-off-by: Ashley Cui <acui@redhat.com>
2024-02-05 11:01:21 -05:00
fc3ae73961 Merge pull request #21494 from containers/renovate/github.com-docker-docker-25.x
fix(deps): update module github.com/docker/docker to v25.0.2+incompatible
2024-02-05 15:43:21 +00:00
bb6a561583 Merge pull request #21457 from containers/renovate/github.com-mattn-go-sqlite3-1.x
fix(deps): update module github.com/mattn/go-sqlite3 to v1.14.21
2024-02-05 14:53:48 +00:00
ee923358c3 Vendor c/common
@main

Signed-off-by: Ashley Cui <acui@redhat.com>
2024-02-05 09:46:40 -05:00
249474a84e drop support for "pasta" as a network name
The pasta network mode has been added in podman v4.4 and this causes a
conflict with named networks that could also be called "pasta". To not
break anything we had special logic to prefer the named network over the
network mode. Now with 5.0 we can break this and remove this awkward
special handling from the code.

Containers created with 4.X that use a named network pasta will also
continue to work fine, this chnage will only effect the creation of new
containers with a named network pasta and instead always used the
network mode pasta. We now also block the creation of networks with the
name "pasta".

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-05 13:57:24 +01:00
a098899104 Use semi-colon as the field separator for internal volumes-from inspect annotation
The current field separator comma of the inspect annotation conflicts with the mount options of --volumes-from as the mount options itself can be comma separated.

Signed-off-by: Vikas Goel <vikas.goel@gmail.com>
2024-02-05 00:16:53 -08:00
daf7a2c069 Merge pull request #21372 from cevich/win_mac_lint
Run lint for mac builds
2024-02-03 13:19:30 +00:00
d217de6424 [skip-ci] Update github/issue-labeler action to v3.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 23:24:07 +00:00
9e3d61a9d5 fix(deps): update module github.com/docker/docker to v25.0.2+incompatible
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 22:02:19 +00:00
2431fb3f0b Merge pull request #21472 from mheon/vendor_runc_main
Update to runc main, removing pin to an older version
2024-02-02 22:01:02 +00:00
39f22c3821 Include machine-tests in cirrus-cron jobs
Irrespective of reason/cause, a commit was merged into main that broke
podman-machine, and went unnoticed for several days.  Improve the
situation by including podman-machine testing in the daily cirrus-cron
builds.  These are monitored by e-mail when `Total Success` reports a
failure.

Also: Add a comment for Windows & Mac build tasks, documenting the
reason they don't execute on RHEL release branches.

Signed-off-by: Chris Evich <cevich@redhat.com>
2024-02-02 14:46:54 -05:00
7de64b47f2 Vendor c/storage main
This picks up a further removal of the runc users package that
was breaking the build on Windows.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-02 13:30:07 -05:00
11c37d5c95 Merge pull request #21272 from rhatdan/VENDOR
Add tests to make sure mounts.conf does not warn on missing content
2024-02-02 16:03:39 +00:00
9fb57d346f Cease using deprecated runc userlookup
Instead switch to github.com/moby/sys/user, which we already had
as an indirect dependency.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-02 11:02:43 -05:00
91b8f208a2 Bump to runc main
By using main instead of the v1.1 branch, we drop an unnecessary
dependency on cilium/ebpf, saving ~1mb of binary size.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-02 10:06:20 -05:00
6a727fdbee Fix updated runc dep breaking pod devices cgroup
The update to runc broke creation of devices for containers in
the pod cgroup. We don't support the device cgroup for pods at
present, so just disable it for now, resolving the issue.

Thanks to Giuseppe for finding this one!

[NO NEW TESTS NEEDED] This is a fix for broken tests

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-02 09:15:35 -05:00
2818abf849 Update to runc main, removing pin to an older version
We were pinned to a specific commit to ensure that tests kept
passing. Hopefully they pass now, as we need to grab latest runc
for CVE fixes.

Also grab Buildah main to fix a build issue on FreeBSD. After a
botched manual vendor, I used Ed's treadmill script and squashed
it into this commit to make Git happy. Thanks bunches Ed.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-02 08:11:17 -05:00
5e64d4f021 Merge pull request #21068 from alexlarsson/quadlet-templates
Support templates in quadlet
2024-02-02 10:36:18 +00:00