podman/libpod/define
Matt Heon 30e2c923d6 Add the ability to automount images as volumes via play
Effectively, this is an ability to take an image already pulled
to the system, and automatically mount it into one or more
containers defined in Kubernetes YAML accepted by `podman play`.

Requirements:
- The image must already exist in storage.
- The image must have at least 1 volume directive.
- The path given by the volume directive will be mounted from the
  image into the container. For example, an image with a volume
  at `/test/test_dir` will have `/test/test_dir` in the image
  mounted to `/test/test_dir` in the container.
- Multiple images can be specified. If multiple images have a
  volume at a specific path, the last image specified trumps.
- The images are always mounted read-only.
- Images to mount are defined in the annotation
  "io.podman.annotations.kube.image.automount/$ctrname" as a
  semicolon-separated list. They are mounted into a single
  container in the pod, not the whole pod.

As we're using a nonstandard annotation, this is Podman only, any
Kubernetes install will just ignore this.

Underneath, this compiles down to an image volume
(`podman run --mount type=image,...`) with subpaths to specify
what bits we want to mount into the container.

Signed-off-by: Matt Heon <mheon@redhat.com>
2024-04-25 14:12:27 -04:00
..
annotations.go Add the ability to automount images as volumes via play 2024-04-25 14:12:27 -04:00
autoupdate.go auto-update: validate container image 2022-09-26 17:07:05 +02:00
checkpoint_restore.go Added optional container checkpointing statistics 2021-11-15 11:50:24 +00:00
config.go logging: new mode -l passthrough-tty 2024-02-28 17:23:59 +01:00
container.go Add support for updating restart policy 2024-04-17 08:23:51 -04:00
container_inspect.go Add support for annotations 2024-03-22 19:38:22 +00:00
containerstate.go Send container stats over API on a per-interface basis 2024-02-06 17:05:07 -05:00
diff.go podman diff accept two images or containers 2021-07-02 17:11:56 +02:00
errors.go vendor of containers/common 2023-09-20 08:39:49 -04:00
exec_codes.go podman exec CID without command should exit 125 2024-04-12 07:44:22 -04:00
exit_code_propagation.go kube play: exit-code propagation 2023-05-25 14:46:34 +02:00
fileinfo.go Fixes from make codespell 2021-04-21 13:16:33 -04:00
healthchecks.go Add support for startup healthchecks 2022-11-28 13:30:29 -05:00
info.go Add rootless network command to `podman info` 2024-03-26 09:56:48 -04:00
mount.go Add support for ramfs as well as tmpfs in volume mounts 2023-08-21 07:14:57 -04:00
mount_freebsd.go pkg/specgen: add support for 'podman run --init' on FreeBSD 2023-06-28 14:43:50 +01:00
mount_linux.go Use constants for mount types 2023-07-14 07:17:21 -04:00
mount_unsupported.go libpod/define: Make TypeBind a platform-specific constant 2022-08-30 16:32:24 +01:00
pod_inspect.go Include lock number in pod/container/volume inspect 2023-06-05 12:28:50 -04:00
podstate.go Add a Degraded state to pods 2020-10-21 13:31:40 -04:00
runtime.go
sdnotify.go add "healthy" sdnotify policy 2023-07-25 11:17:44 +02:00
version.go Bump Go module to v5 2024-02-08 09:35:39 -05:00
volume_inspect.go Include lock number in pod/container/volume inspect 2023-06-05 12:28:50 -04:00