spiegel_podman/pkg
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
..
annotations Remove ReservedAnnotations from kube generate specification 2023-01-18 08:46:24 -05:00
api Add status messages to podman --remote commit 2023-11-01 14:31:09 -04:00
auth fix(deps): update module github.com/docker/docker to v24 2023-05-22 15:32:12 +02:00
autoupdate pkg/autoupdate: add !remote tag 2023-10-24 12:11:10 +02:00
bindings Add status messages to podman --remote commit 2023-11-01 14:31:09 -04:00
channel bump golangci-lint to v1.50.1 2022-12-15 13:39:56 +01:00
checkpoint Merge pull request #19951 from Luap99/small-remote 2023-09-14 15:27:45 +02:00
copy pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
criu lint: fix warnings found by protogetter 2023-10-20 16:26:10 +02:00
ctime Replace deprecated ioutil 2022-09-20 15:34:27 -04:00
domain Add status messages to podman --remote commit 2023-11-01 14:31:09 -04:00
emulation Add podman farm build command 2023-10-24 12:58:39 -04:00
env Revert "feat(env): support multiline in env-file" 2023-10-04 17:06:21 +02:00
errorhandling Fix typos 2023-02-11 18:23:24 +01:00
farm Add podman farm build command 2023-10-24 12:58:39 -04:00
fileserver Initial addition of 9p code to Podman 2023-10-31 10:14:02 -04:00
inspect pkg/inspect: remove unused ImageResult type 2022-05-24 16:07:39 +02:00
k8s.io lint: fix warnings found by inamedparam 2023-10-20 16:27:41 +02:00
lookup source code comments and docs: fix typos, language, Markdown layout 2023-05-22 07:52:16 +02:00
machine Consume OCI images for machine image 2023-11-02 10:23:14 -05:00
namespaces source code comments and docs: fix typos, language, Markdown layout 2023-05-22 07:52:16 +02:00
parallel pkg/parallel/ctr: add !remote tag 2023-10-24 12:23:17 +02:00
ps pkg/ps: add !remote tag 2023-10-24 12:21:31 +02:00
rctl pkg/rctl: Remove unused cgo dependency 2022-10-31 15:13:48 +00:00
rootless lint: fix warnings found by perfsprint 2023-10-20 16:27:46 +02:00
seccomp pkg: switch to golang native error wrapping 2022-07-08 08:54:47 +02:00
selinux Fix SELinux functions names to not be repetitive 2020-04-23 15:57:34 -04:00
signal Run codespell on code 2022-11-04 10:57:41 -04:00
specgen Add status messages to podman --remote commit 2023-11-01 14:31:09 -04:00
specgenutil Merge pull request #20149 from ygalblum/quadlet-container-mount 2023-09-28 05:38:52 -04:00
specgenutilexternal Quadlet container mount - support non key=val options 2023-09-27 16:20:00 +03:00
strongunits introduce pkg/strongunits 2023-09-20 11:19:41 -05:00
systemd Quadlet - explicit support for read-only-tmpfs 2023-10-25 13:28:15 +03:00
terminal podman ssh work, using new c/common interface 2022-08-09 14:00:58 -04:00
timetype lint: fix warnings found by perfsprint 2023-10-20 16:27:46 +02:00
trust Revert the usage of home.GetConfigHome() 2023-07-17 18:29:06 +02:00
util Change to using gopsutil for cross-OS process ops 2023-10-31 10:14:06 -04:00