@@ -543,6 +543,60 @@ spec:
543543 type: FileOrCreate
544544` ` `
545545
546+ # ## image
547+
548+ {{< feature-state feature_gate_name="ImageVolume" >}}
549+
550+ An `image` volume source represents an OCI object (a container image or
551+ artifact) pulled and mounted on the kubelet's host machine.
552+
553+ {{% code_sample file="pods/image-volumes.yaml" %}}
554+
555+ The volume is resolved at pod startup depending on which `PullPolicy` value is provided :
556+
557+ - `Always` : the kubelet always attempts to pull the reference. Container
558+ creation will fail If the pull fails.
559+ - `Never` : the kubelet never pulls the reference and only uses a local image or
560+ artifact. Container creation will fail if the reference isn't present.
561+ - `IfNotPresent` : the kubelet pulls if the reference isn't already present on
562+ disk. Container creation will fail if the reference isn't present and the pull
563+ fails.
564+
565+ The volume gets re-resolved if the pod gets deleted and recreated, which means
566+ that new remote content will become available on pod recreation. A failure to
567+ resolve or pull the image during pod startup will block containers from starting
568+ and may add significant latency. Failures will be retried using normal volume
569+ backoff and will be reported on the pod reason and message. The types of objects
570+ that may be mounted by this volume are defined by the container runtime
571+ implementation on a host machine and at minimum must include all valid types
572+ supported by the container image field. The OCI object gets mounted in a single
573+ directory (`spec.containers[*].volumeMounts.mountPath`) by merging the manifest
574+ layers in the same way as for container images. The volume will be mounted
575+ read-only (`ro`) and non-executable files (`noexec`). Sub path mounts for
576+ containers are not supported (`spec.containers[*].volumeMounts.subpath`). The
577+ field `spec.securityContext.fsGroupChangePolicy` has no effect on this volume
578+ type. The [`AlwaysPullImages` Admision Controller](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages)
579+ does also work for this volume source like for container images.
580+
581+ The following fields are available for the `image` type :
582+
583+ - `reference` : Image or artifact reference to be used.
584+ Behaves in the same way as `pod.spec.containers[*].image`.
585+ Pull secrets will be assembled in the same way as for the container image by
586+ looking up node credentials, SA image pull secrets, and pod spec image pull
587+ secrets. This field is optional to allow higher level config management to
588+ default or override container images in workload controllers like
589+ Deployments and StatefulSets.
590+
591+ [More info about container images](/docs/concepts/containers/images)
592+
593+ - `pullPolicy` : Policy for pulling OCI objects. Possible values are: `Always`,
594+ ` Never` or `IfNotPresent`. Defaults to `Always` if `:latest` tag is
595+ specified, or `IfNotPresent` otherwise.
596+
597+ See the [Use an Image Volume With a Pod](docs/tasks/configure-pod-container/image-volumes)
598+ example for more details on how to use the volume source.
599+
546600# ## iscsi
547601
548602An `iscsi` volume allows an existing iSCSI (SCSI over IP) volume to be mounted
0 commit comments