spiegel_podman/pkg
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 Removing CRI-O related annotations 2024-03-12 14:56:06 +01:00
api Merge pull request #22322 from mheon/update_the_config 2024-04-22 07:50:48 +00:00
auth Replace strings.SplitN with strings.Cut 2024-01-11 13:50:15 +00:00
autoupdate Bump Go module to v5 2024-02-08 09:35:39 -05:00
bindings Replace golang.org/x/exp/slices with slices from std 2024-04-23 11:16:40 +02:00
channel bump golangci-lint to v1.50.1 2022-12-15 13:39:56 +01:00
checkpoint Bump Go module to v5 2024-02-08 09:35:39 -05:00
copy Bump Go module to v5 2024-02-08 09:35:39 -05:00
criu chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
ctime chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
domain Add the ability to automount images as volumes via play 2024-04-25 14:12:27 -04:00
emulation chore: delete obsolete // +build lines 2024-01-04 11:53:38 +02:00
env pkg/env.Join(): don't modify passed-in maps 2024-02-29 11:47:44 -05:00
errorhandling Fix typos 2023-02-11 18:23:24 +01:00
farm Bump Go module to v5 2024-02-08 09:35:39 -05:00
fileserver Bump Go module to v5 2024-02-08 09:35:39 -05:00
inspect Bump Go module to v5 2024-02-08 09:35:39 -05:00
k8s.io Bump Go module to v5 2024-02-08 09:35:39 -05:00
lookup Cease using deprecated runc userlookup 2024-02-02 11:02:43 -05:00
machine Replace golang.org/x/exp/slices with slices from std 2024-04-23 11:16:40 +02:00
namespaces Replace strings.SplitN with strings.Cut 2024-01-11 13:50:15 +00:00
parallel Bump Go module to v5 2024-02-08 09:35:39 -05:00
ps podman ps: show exposed ports under PORTS as well 2024-04-10 14:24:23 +02:00
rctl Replace strings.SplitN with strings.Cut 2024-01-11 13:50:15 +00:00
rootless pkg/rootless: use fileutils.(Le|E)xists 2024-04-19 09:52:14 +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 refacto: unknown signal return signal number without prefix 2024-02-28 19:45:03 +01:00
specgen Add the ability to automount images as volumes via play 2024-04-25 14:12:27 -04:00
specgenutil Add support for image volume subpaths 2024-04-25 14:12:27 -04:00
specgenutilexternal Quadlet container mount - support non key=val options 2023-09-27 16:20:00 +03:00
systemd pkg/systemd: use fileutils.(Le|E)xists 2024-04-19 09:52:15 +02:00
terminal Fix Lint on Windows and enable the job 2024-02-20 08:06:18 -05:00
timetype Replace strings.SplitN with strings.Cut 2024-01-11 13:50:15 +00:00
trust pkg/trust: use fileutils.(Le|E)xists 2024-04-19 09:52:14 +02:00
util pkg/util: use fileutils.(Le|E)xists 2024-04-19 09:52:14 +02:00