Commit graph

5994 commits

Author SHA1 Message Date
Brent Baude
1f64ae10f6 Prune FCOS related code
Given the switch to pulling oci artifacts for podman, we no longer need
a fair bit of fedora coreos code for automatically downloading images.

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-15 21:05:17 -06:00
openshift-merge-bot[bot]
5fc351a67a
Merge pull request #21668 from Luap99/machine-pull-interrupt
machine: ocipull do not error if downloaddir exists
2024-02-15 21:35:54 +00:00
openshift-merge-bot[bot]
bed619ca3d
Merge pull request #21664 from n1hility/wsl-fix-conflict
Fixes VM name conflict checking with WSL
2024-02-15 20:24:22 +00:00
Jason T. Greene
d221e0b00a Remove log-level from runSystemCommand since wsl does not support it
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-02-15 11:54:46 -06:00
Paul Holzinger
9ee17d4222
machine/qemu: use extra gvproxy socket
Right now the code used the same socket for gvproxy and the qemu qmp
socket, this was racy and no correct as the later overwrote the former.
The correct thing is to use to separate socket paths, just use the
GVProxySocket() helper like applehv does.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-15 16:25:38 +01:00
Paul Holzinger
bcec7e6279
machine: ocipull do not error if downloaddir exists
If users cancel the image download with CTRL-C for example then the
blob dir will stay around. The next time we run the download we should
just start the download again and not complain about the existing
directory.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-15 15:08:52 +01:00
openshift-merge-bot[bot]
e595441891
Merge pull request #21657 from baude/fixocipull
Fix small bug in ocipull
2024-02-14 21:55:28 +00:00
Brent Baude
144e420bb9 Add testcase for WSL dist conflicts
Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-14 15:36:08 -06:00
Jason T. Greene
d23dd35dc1 Correct VM existance check on WSL
Replaces GetHyperVisorVMs() with Exists() to better abstract the underlying
use-case and slightly imrpove efficiency.

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-02-14 15:27:56 -06:00
Brent Baude
9abc042320 Fix small bug in ocipull
This PR fixes a small bug in pulling disk artifacts where the machine os
was accidently being set to GOOS instead of "linux".  Also removed the
manifest type verification because it served no purpose.

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-14 12:37:18 -06:00
Vikas Goel
42a78c714c Add volumes-from support using annotation in kube yaml
The reserved annotation io.podman.annotations.volumes-from is made public to let user define volumes-from to have one container mount volumes of other containers.

The annotation format is: io.podman.annotations.volumes-from/tgtCtr: "srcCtr1:mntOpts1;srcCtr2:mntOpts;..."

Fixes: containers#16819

Signed-off-by: Vikas Goel <vikas.goel@gmail.com>
2024-02-14 07:31:43 -08:00
openshift-merge-bot[bot]
760fc1e296
Merge pull request #21646 from jakecorrenti/set-guard
machine: `machine set` only in `Stopped` state
2024-02-14 12:33:11 +00:00
openshift-merge-bot[bot]
3d1f98e2f6
Merge pull request #21644 from baude/wslremovepanic
Replace panic with no-op
2024-02-14 09:40:00 +00:00
Jake Correnti
3de467d9f8 machine: Re-enable USBs check for wsl machine set
Re-enable USBs check in wsl `SetProviderAttrs` function to prevent the
user trying to set USB settings which isn't supported.

Additionally removes a TODO in wsl's `CreateVM` function to check if the
`opts.USBs` length is greater than 0. This check is done in a more
generic way higher up the stack.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-02-13 16:50:34 -05:00
Jake Correnti
0e9d867555 machine: machine set only when machine's stopped
Requires that the specified machine's state is `define.Stopped` in order
to set settings.

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-02-13 16:50:22 -05:00
Brent Baude
f9bc9a85bd Replace panic with no-op
Instead of panic'ing for provider.MountType(), we return the "Unknown"
voluem type

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-13 14:59:07 -06:00
Brent Baude
001824b9f3 Windows uses USERPROFILE not HOME
When dealing with environment variables that set $HOME, we do not get
the desired result.  Windows will honor USERPROFILE.

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-13 13:20:06 -06:00
openshift-merge-bot[bot]
c88c689584
Merge pull request #21602 from baude/ociartdisk
Allow podman machine to download from oci registry
2024-02-13 12:51:28 +00:00
Matt Heon
66e292ebb9 Fix build on Main
Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-12 18:02:07 -05:00
openshift-merge-bot[bot]
fcd69c997e
Merge pull request #21542 from jakecorrenti/bump-gvproxy
Enable passing logfile to gvproxy
2024-02-12 21:49:41 +00:00
openshift-merge-bot[bot]
1e006b2672
Merge pull request #21583 from Luap99/scp-port
image scp: don't require port for ssh URL
2024-02-12 21:35:56 +00:00
openshift-merge-bot[bot]
271a5199f2
Merge pull request #21420 from gordonmessmer/scp-no-mktemp
podman-image-scp: Load images without the use of a temporary file.
2024-02-12 21:30:26 +00:00
Brent Baude
2430fc71a0 Allow podman machine to download from oci registry
this pr represents a shift in how we download podman machine images.
these images will now be stored in oci registry and will replace the
default method of downloading an image.  you can still use a reference
to a disk image as a path or url too with the --image-path switch.

the final registry and location of the images has not been determined;
and will need to be updated in podman as well.

i dont think we need to allow --image-path to accept a registry/image
for the podman 5.0 release.  i do think there will be demand for this.

upgrades also need to be plumbed.  for example, updating from an oci
registry.

once we make decisions on final image locations/registrties as well as
some behaviors of init and the oci pull, we must update the machine-init
documentation.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-12 15:19:34 -06:00
Matt Heon
f7f4d1064d Fix the build on main
[NO NEW TESTS NEEDED]

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-12 14:34:46 -05:00
openshift-merge-bot[bot]
49aba43234
Merge pull request #21573 from baude/nofail
Don't panic on podman4 machine configs
2024-02-12 18:10:55 +00:00
openshift-merge-bot[bot]
c524da252e
Merge pull request #21597 from n1hility/wsl-refactor
Complete WSL implementation in Podman 5
2024-02-12 18:05:45 +00:00
Gordon Messmer
eb8428df59 podman-image-scp: Load images without the use of a temporary file.
The default location for temporary files created by mktemp may not
have enough space for an image.  Use the new SSH functions which
support an input reader to make the code simpler, more reliable,
and more efficient.

[NO NEW TESTS NEEDED]

Signed-off-by: Gordon Messmer <gordon.messmer@gmail.com>
2024-02-12 09:25:43 -08:00
Jason T. Greene
f8847ea047 Improve comments on waitOnProcess
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-02-12 09:17:56 -06:00
Brent Baude
d3328d4f32 Don't panic on podman4 machine configs
we should not panic podman when it has to deal with a podman4 machine
config.  instead, we throw a soft error for `machine ls` and in all
other cases, we throw a hard error stating that the machine config is
incompatible.

a future PR will provide instructions on how to recover from this.
current idea is something like `podman machine reset` which blows
everything away machine-wise.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-12 09:10:46 -06:00
openshift-merge-bot[bot]
6d107a26fb
Merge pull request #21604 from baude/springclean
Minor cleanup from podman 4
2024-02-12 09:06:34 +00:00
Brent Baude
bb7d8fdc41 Workaround connection hangups in start/stop racing
Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-02-11 17:04:15 -06:00
Jason T. Greene
09b86e26d1 Improve robustness of pipe checks
Improve error reporting on ssh readiness check

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-02-11 17:04:09 -06:00
Jason T. Greene
487219d809 Complete WSL implementation, refactor a few areas
Also addresses a number of issues:
- StopHostNetworking isn't plumbed, win-sshproxy leaks on hyperv
- Wait api and print output doesn't work properly on Windows
- API forwarding doesn't work on WSL
- Terminal corruption with after start/stop on Windows
- Gvproxy is forcefully killed vs gracefully quit
- Switching rootful/rootless does not update /var/run/docker.sock on the guest
- File already closed error on init
- HyperV backend is publishing Unix sockets when it should be named pipes
- User-mode networking doesn't always work
- Stop state outside of lock boundaries
- WSL blocks parallel machined (should be supported)

[NO NEW TESTS NEEDED]

Signed-off-by: Jason T. Greene <jason.greene@redhat.com>
2024-02-11 12:58:11 -06:00
Brent Baude
d7cb66492b wsl - wip
Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-11 12:58:11 -06:00
Brent Baude
e74d268bf2 Minor cleanup from podman 4
This PR is only a few cleanup items where code is no longer used.  More
to come I'm sure

[NO NEW TESTS NEEDED]

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-11 09:29:13 -06:00
Brent Baude
2a61998f07 Fail if vm exists in hyperv already
Fix a bug where if a vm exists, created by some other process/user, and
you attempt to make a podman machine with the same name.

Signed-off-by: Brent Baude <bbaude@redhat.com>
2024-02-10 14:49:34 -06:00
openshift-merge-bot[bot]
4ff00f46b2
Merge pull request #21591 from l0rd/crc-copysparse-vendoring
Get CopySparse from github.com/crc-org/crc/
2024-02-09 20:44:41 +00:00
Mario Loriedo
7ecc414678 Vendor crc CopySparse
Added the module github.com/crc-org/crc/ as a dependency.

Updated `decompress.go` and `copy_test.go` in compression
so that `CopySparse` from crc-org/crc/v2/pkg/os is used instead
of the local version in `copy.go`.

Deleted `copy.go` that is not used anymore.

Signed-off-by: Mario Loriedo <mario.loriedo@gmail.com>
2024-02-09 19:33:56 +01:00
openshift-merge-bot[bot]
da5bab6257
Merge pull request #21577 from jakecorrenti/get-default-devices-machineconfig
machine: change getDefaultDevices signature
2024-02-09 16:59:04 +00:00
Paul Holzinger
41cd90a8e7
image scp: don't require port for ssh URL
SSH uses 22 as default so it is really not necessary to require the
port. The backend code already does this but the parsing in the
frontend always tried to parse the port.

[NO NEW TESTS NEEDED] This would require actual remote host ssh setup in
CI so it is not possible to be check but I verified it locally.

Fixes https://issues.redhat.com/browse/RHEL-17776

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-09 13:49:57 +01:00
Jake Correnti
7be6cd4b09 machine: USB passthrough
Sets up USB passthrough for machine. Additionally moves `SetOptions` out
from `pkg/machine/config.go` to its own file in
`pkg/machine/define/setopts.go`.

[NO NEW TESTS NEEDED]

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-02-08 20:30:43 -05:00
Jake Correnti
02eb907db0 machine: change getDefaultDevices signature
Changes the signature for `getDefaultDevices` to take
a `vmconfigs.MachineConfig`.

[NO NEW TESTS NEEDED]

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-02-08 20:27:33 -05:00
openshift-merge-bot[bot]
5311233f86
Merge pull request #21556 from ygalblum/quadlet-comment-line
Quadlet - do not look for line continuation in comment lines
2024-02-08 19:54:38 +00:00
openshift-merge-bot[bot]
b7d15a2efe
Merge pull request #21558 from Luap99/freebsd-build
pkg/machine: make it build for freebsd
2024-02-08 18:54:09 +00:00
openshift-merge-bot[bot]
88b994902d
Merge pull request #21512 from Luap99/pasta-netname-removal
drop support for "pasta" as a network name
2024-02-08 17:17:55 +00:00
Paul Holzinger
9f38b22152
pkg/machine: make it build for freebsd
This is completely untested as I do not have access to a freebsd system
but it compiles and changes look simple enough to assume it works.

[NO NEW TESTS NEEDED]

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2024-02-08 17:43:50 +01:00
Matt Heon
72f1617fac Bump Go module to v5
Moving from Go module v4 to v5 prepares us for public releases.

Move done using gomove [1] as with the v3 and v4 moves.

[1] https://github.com/KSubedi/gomove

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-02-08 09:35:39 -05:00
openshift-merge-bot[bot]
4fc52ed068
Merge pull request #21534 from mheon/stats_per_interface
Send container stats over API on a per-interface basis
2024-02-08 14:19:08 +00:00
openshift-merge-bot[bot]
246831b50f
Merge pull request #21409 from rhatdan/events
Show network name network events with podman -remote events
2024-02-08 14:16:24 +00:00
Jake Correnti
c023b789f2 Re-enable passing a logfile to gvproxy
Re-enable the commented-out code that passed the path to a logfile to
gvproxy when the user passes `--log-level=debug`

Signed-off-by: Jake Correnti <jakecorrenti+github@proton.me>
2024-02-08 08:32:01 -05:00