spiegel_podman/cmd/podman/machine
Brent Baude ea4775ec9e Consume OCI images for machine image
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>
2023-11-02 10:23:14 -05:00
..
os Plumbing to run machine tests with hyperv 2023-09-14 15:57:35 -05:00
client9p.go Log gvproxy and server9 to file on log-level=debug 2023-10-31 10:14:06 -04:00
info.go Plumbing to run machine tests with hyperv 2023-09-14 15:57:35 -05:00
init.go container.conf: support attributed string slices 2023-10-27 12:44:33 +02:00
inspect.go Plumbing to run machine tests with hyperv 2023-09-14 15:57:35 -05:00
list.go New machines should show Never as LastUp 2023-09-28 14:16:26 -04:00
machine.go Plumbing to run machine tests with hyperv 2023-09-14 15:57:35 -05:00
machine_unix.go Fix podman machine on Windows 2022-06-30 16:21:59 -05:00
machine_unsupported.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
machine_windows.go Fix podman machine on Windows 2022-06-30 16:21:59 -05:00
os.go Introduce podman machine os apply 2023-02-15 14:48:12 -05:00
rm.go Plumbing to run machine tests with hyperv 2023-09-14 15:57:35 -05:00
server9p.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
set.go Plumbing to run machine tests with hyperv 2023-09-14 15:57:35 -05:00
ssh.go Use ActiveServiceDestination in ssh remoteConnectionUsername 2023-09-21 11:56:19 +01:00
start.go Plumbing to run machine tests with hyperv 2023-09-14 15:57:35 -05:00
stop.go Consume OCI images for machine image 2023-11-02 10:23:14 -05:00