spiegel_podman/pkg/machine/e2e
Brent Baude 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
..
basic_test.go fix podman-remote exec regression with v4.8 2023-11-29 13:22:46 +01:00
config_basic_test.go enable linter for pkg/machine/e2e 2022-07-21 18:04:10 +02:00
config_darwin_test.go Enable machine e2e test for applehv 2023-09-25 15:45:26 -05:00
config_info_test.go enable linter for pkg/machine/e2e 2022-07-21 18:04:10 +02:00
config_init_test.go machine e2e : set default disk size to 11 2023-12-13 12:14:42 -06:00
config_inspect_test.go Fix machine inspect test config 2024-01-11 11:42:54 -05:00
config_linux_test.go Enable machine e2e test for applehv 2023-09-25 15:45:26 -05:00
config_list_test.go enable linter for pkg/machine/e2e 2022-07-21 18:04:10 +02:00
config_os_apply_test.go Introduce podman machine os apply 2023-02-15 14:48:12 -05:00
config_rm_test.go Use single persistent ssh key for all machines 2024-01-04 23:47:49 -05:00
config_set_test.go Update machine init/set tests 2023-08-25 11:28:07 -04:00
config_ssh_test.go Fix typos 2023-02-11 18:23:24 +01:00
config_start_test.go Add --quiet and --no-info flags to podman machine start 2022-11-11 16:14:20 -05:00
config_stop_test.go enable linter for pkg/machine/e2e 2022-07-21 18:04:10 +02:00
config_test.go [CI:MACHINE]Podman5 QEMU refactor 2024-02-07 09:18:36 -06:00
config_unix_test.go [CI:MACHINE]Podman5 QEMU refactor 2024-02-07 09:18:36 -06:00
config_windows_test.go Create pkg/machine/ignition package 2024-01-04 08:51:35 -05:00
info_test.go Fix podman machine info test for hyperV 2023-09-26 15:49:55 -04:00
init_test.go [CI:MACHINE]Podman5 QEMU refactor 2024-02-07 09:18:36 -06:00
inspect_test.go [CI:MACHINE]Podman5 QEMU refactor 2024-02-07 09:18:36 -06:00
list_test.go Refactor: replace StringInSlice with slices.Contains 2024-01-05 16:25:56 +02:00
machine_test.go [CI:MACHINE]Podman5 QEMU refactor 2024-02-07 09:18:36 -06:00
os_test.go update to ginkgo v2 2023-05-02 11:27:35 +02:00
proxy_test.go Create pkg/machine/ignition package 2024-01-04 08:51:35 -05:00
pull_test.go [CI:MACHINE]Podman5 QEMU refactor 2024-02-07 09:18:36 -06:00
README.md Implement bare-metal Mac M1 podman-machine testing 2023-12-04 10:40:13 -05:00
rm_test.go Use single persistent ssh key for all machines 2024-01-04 23:47:49 -05:00
set_test.go [CI:MACHINE]Podman5 QEMU refactor 2024-02-07 09:18:36 -06:00
ssh_test.go Create pkg/machine/ignition package 2024-01-04 08:51:35 -05:00
start_test.go [CI:MACHINE]Podman5 QEMU refactor 2024-02-07 09:18:36 -06:00
stop_test.go Automatic code cleanups - JetBrains 2023-11-07 14:05:15 -06:00

Working README for running the machine tests

Note: you must not have any machines defined before running tests

Linux

QEMU

make localmachine

Microsoft Windows

HyperV

  1. Open a powershell as admin
  2. $env:CONTAINERS_MACHINE_PROVIDER="hyperv"
  3. ./winmake localmachine

Note: To run specific test files, add the test files to the end of the winmake command:

./winmake localmachine "basic_test.go start_test.go"

WSL

  1. Open a powershell as a regular user
  2. Build and copy win-sshproxy into bin/
  3. ./winmake localmachine

Note: To run specific test files, add the test files to the end of the winmake command:

./winmake localmachine "basic_test.go start_test.go"

MacOS

Apple Hypervisor

  1. make podman-remote
  2. export CONTAINERS_MACHINE_PROVIDER="applehv"
  3. export MACHINE_IMAGE="https://fedorapeople.org/groups/podman/testing/applehv/arm64/fedora-coreos-38.20230925.dev.0-applehv.aarch64.raw.gz"
  4. make localmachine (Add FOCUS_FILE=basic_test.go to only run basic test)