mirror of
https://github.com/containers/podman.git
synced 2026-03-24 17:43:40 -04:00
allow podman machine to extract its disk image from an oci registry or oci-dir locally. for now, the image must be relatively inflexible. it must have 1 layer. the layer must possess one image. so a dockerfile like: FROM scratch COPY ./myimage.xz /myimage.xz when using an oci dir, the directory structure must adhere to the typical directory structure of a an oci image (with one layer). ── blobs │ └── sha256 │ ├── 53735773573b3853bb1cae16dd21061beb416239ceb78d4ef1f2a0609f7e843b │ ├── 80577866ec13c041693e17de61444b4696137623803c3d87f92e4f28a1f4e87b │ └── af57637ac1ab12f833e3cfa886027cc9834a755a437d0e1cf48b5d4778af7a4e ├── index.json └── oci-layout in order to identify this new input, you must use a transport/schema to differentiate from current podman machine init --image-path behavior. we will support `oci-dir://` and `docker://` as transports. when using the docker transport, you can only use an empty transport for input. for example, `podman machine init --image-path docker://`. A fully quailified image name will be supported in the next iteration. the transport absent anything means, i want to pull the default fcos image stored in a registry. podman will determine its current version and then look for its correlating manifest. in this default use case, it would look for: quay.io/libpod/podman-machine-images:<version> that manifest would then point to specific images that contain the correct arch and provider disk image. i.e. quay.io/libpod/podman-machine-images:4.6-qcow2 this PR does not enable something like docker://quay.io/mycorp/myimage:latest yet. names, addresses, andf schema/transports are all subject to change. the plan is to keep this all undocumented until things firm up. [NO NEW TESTS NEEDED] Signed-off-by: Brent Baude <bbaude@redhat.com>
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
- Open a powershell as admin
- $env:CONTAINERS_MACHINE_PROVIDER="hyperv"
./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
- Open a powershell as a regular user
- Build and copy win-sshproxy into bin/
./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
make podman-remotemake .install.ginkgoexport TMPDIR=/Users/<yourname>export CONTAINERS_MACHINE_PROVIDER="applehv"export MACHINE_IMAGE="https://fedorapeople.org/groups/podman/testing/applehv/arm64/fedora-coreos-38.20230925.dev.0-applehv.aarch64.raw.gz"./test/tools/build/ginkgo -vv --tags "remote exclude_graphdriver_btrfs btrfs_noversion exclude_graphdriver_devicemapper containers_image_openpgp remote" -timeout=90m --trace --no-color pkg/machine/e2e/.
Note: Add --focus-file "basic_test.go" to only run basic test