spiegel_podman/pkg/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
..
applehv AppleHV: Fix machine rm error message 2023-11-01 15:02:30 -04:00
e2e Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
hyperv Log gvproxy and server9 to file on log-level=debug 2023-10-31 10:14:06 -04:00
ocipull Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
os Introduce podman machine os apply 2023-02-15 14:48:12 -05:00
provider Build applehv for Intel Macs 2023-09-29 22:42:22 -04:00
qemu Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
wsl Merge pull request #20274 from ashley-cui/cleanup 2023-10-13 14:22:46 +00:00
cleanup.go Machine: Teardown on init failure 2023-10-12 09:26:06 -04:00
config.go Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
config_test.go pkg/machine: add missing build tags to tests 2022-07-04 18:09:30 +02:00
connection.go Implement automatic port reassignment on Windows 2023-08-21 07:23:31 -05:00
default.go Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
errors.go Various updates for hyperv and machine e2e tests 2023-09-21 08:52:02 -05:00
fcos.go Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
fcos_test.go Restrict fcos_test to amd64, arm64 2023-09-05 21:50:52 -04:00
fedora_unix.go WSL refactoring 2023-01-23 10:48:32 -06:00
fedora_windows.go WSL refactoring 2023-01-23 10:48:32 -06:00
gvproxy.go Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00
ignition.go podman machine: disable zincati update service 2023-09-28 13:01:52 -05:00
ignition_darwin.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
ignition_freebsd.go pkg: Build pkg/machine on FreeBSD 2022-08-13 07:53:34 +01:00
ignition_linux.go fix #17244: use /etc/timezone where timedatectl is missing on Linux 2023-01-30 00:36:37 +09:00
ignition_schema.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
ignition_windows.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
keys.go Fail if ssh key exists 2023-08-04 09:13:50 -05:00
machine_common.go Fix typo 2023-10-23 23:21:55 -04:00
machine_unix.go Podman machine AppleHV pass number 3 2023-07-13 09:06:34 -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 Initial addition of 9p code to Podman 2023-10-31 10:14:02 -04:00
oci.go Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
ocidir.go Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
ports.go Implement automatic port reassignment on Windows 2023-08-21 07:23:31 -05:00
ports_unix.go Implement automatic port reassignment on Windows 2023-08-21 07:23:31 -05:00
ports_windows.go Implement automatic port reassignment on Windows 2023-08-21 07:23:31 -05:00
pull.go Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
ssh.go fix(ssh): start machine failed to start with exit status 255 2023-06-16 19:39:38 +08:00
update.go Set machine docker.sock according to rootful flag 2023-05-14 23:56:15 -05:00
volumes.go Podman machine AppleHV pass number 3 2023-07-13 09:06:34 -05:00