On Wed, Oct 4, 2023 at 10:54 AM Joshua Watt <jpewhac...@gmail.com> wrote:
>
> umoci treats the --image parameter as <DIRECTORY>:<NAME>, where the OCI
> spec ref.name for the image it set to <NAME>. Therefore, if the
> intention is for the ref.name to be in the format <IMAGE_NAME>:<TAG> (as
> is expected by e.g. `podman load`, then the complete argument that is
> passed to umoci must be `--image <DIRECTORY>:<IMAGE_NAME>:<TAG>`

This is going to take a few iterations as well, the changing spec
and umoci uses have made this a non-trivial area to modify.

I assume you are talking about the oci ref.name annotation ?

>
> Signed-off-by: Joshua Watt <jpewhac...@gmail.com>
> ---
>  classes/image-oci-umoci.inc | 52 +++++++++++++++++++------------------
>  1 file changed, 27 insertions(+), 25 deletions(-)
>
> diff --git a/classes/image-oci-umoci.inc b/classes/image-oci-umoci.inc
> index 58e4668..a58cb4c 100644
> --- a/classes/image-oci-umoci.inc
> +++ b/classes/image-oci-umoci.inc
> @@ -35,14 +35,16 @@ IMAGE_CMD:oci() {
>      fi
>
>      if [ -z "${OCI_IMAGE_TAG}" ]; then
> -       OCI_IMAGE_TAG="initial-tag"
> -    fi
> +       image_spec="$image_name:${IMAGE_BASENAME}:initial-tag"
> +    else
> +       image_spec="$image_name:${IMAGE_BASENAME}:${OCI_IMAGE_TAG}"

I'm not seeing any examples in the umoci documentation that shows
a "triplet" of values for the image.

It is always image-path[:image-tag] in what I've read and see in the source.

Are you saying that what is written into th oci spec json file should be
different ? and that encoding what you want in the image-path portion
of the umoci --image parameter makes it pass through correctly ?

Bruce

> +   fi
>
>      if [ -n "$new_image" ]; then
>         bbdebug 1 "OCI: umoci init --layout $image_name"
>         umoci init --layout $image_name
> -       umoci new --image $image_name:${OCI_IMAGE_TAG}
> -       umoci unpack --rootless --image $image_name:${OCI_IMAGE_TAG} 
> $image_bundle_name
> +       umoci new --image $image_spec
> +       umoci unpack --rootless --image $image_spec $image_bundle_name
>      else
>         # todo: create a different tag, after checking if the passed one 
> exists
>         true
> @@ -52,58 +54,58 @@ IMAGE_CMD:oci() {
>      bbdebug 1 "OCI: cp -r ${IMAGE_ROOTFS}/* $image_bundle_name/rootfs/"
>      cp -r ${IMAGE_ROOTFS}/* $image_bundle_name/rootfs
>
> -    bbdebug 1 "OCI: umoci repack --image $image_name:${OCI_IMAGE_TAG} 
> $image_bundle_name"
> -    umoci repack --image $image_name:${OCI_IMAGE_TAG} $image_bundle_name
> +    bbdebug 1 "OCI: umoci repack --image $image_spec $image_bundle_name"
> +    umoci repack --image $image_spec $image_bundle_name
>
>      bbdebug 1 "OCI: configuring image"
>      if [ -n "${OCI_IMAGE_LABELS}" ]; then
>         for l in ${OCI_IMAGE_LABELS}; do
> -           bbdebug 1 "OCI: umoci config --image $image_name:${OCI_IMAGE_TAG} 
> --config.label $l"
> -           umoci config --image $image_name:${OCI_IMAGE_TAG} --config.label 
> $l
> +           bbdebug 1 "OCI: umoci config --image $image_spec --config.label 
> $l"
> +           umoci config --image $image_spec --config.label $l
>         done
>      fi
>      if [ -n "${OCI_IMAGE_ENV_VARS}" ]; then
>         for l in ${OCI_IMAGE_ENV_VARS}; do
> -           bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG} 
> --config.env $l"
> -           umoci config --image $image_name:${OCI_IMAGE_TAG} --config.env $l
> +           bbdebug 1 "umoci config --image $image_spec --config.env $l"
> +           umoci config --image $image_spec --config.env $l
>         done
>      fi
>      if [ -n "${OCI_IMAGE_PORTS}" ]; then
>         for l in ${OCI_IMAGE_PORTS}; do
> -           bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG} 
> --config.exposedports $l"
> -           umoci config --image $image_name:${OCI_IMAGE_TAG} 
> --config.exposedports $l
> +           bbdebug 1 "umoci config --image $image_spec --config.exposedports 
> $l"
> +           umoci config --image $image_spec --config.exposedports $l
>         done
>      fi
>      if [ -n "${OCI_IMAGE_RUNTIME_UID}" ]; then
> -       bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG}  
> --config.user ${OCI_IMAGE_RUNTIME_UID}"
> -       umoci config --image $image_name:${OCI_IMAGE_TAG} --config.user 
> ${OCI_IMAGE_RUNTIME_UID}
> +       bbdebug 1 "umoci config --image $image_spec  --config.user 
> ${OCI_IMAGE_RUNTIME_UID}"
> +       umoci config --image $image_spec --config.user 
> ${OCI_IMAGE_RUNTIME_UID}
>      fi
>      if [ -n "${OCI_IMAGE_WORKINGDIR}" ]; then
> -       bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG}  
> --config.workingdir ${OCI_IMAGE_WORKINGDIR}"
> -       umoci config --image $image_name:${OCI_IMAGE_TAG} --config.workingdir 
> ${OCI_IMAGE_WORKINGDIR}
> +       bbdebug 1 "umoci config --image $image_spec  --config.workingdir 
> ${OCI_IMAGE_WORKINGDIR}"
> +       umoci config --image $image_spec --config.workingdir 
> ${OCI_IMAGE_WORKINGDIR}
>      fi
>      if [ -n "${OCI_IMAGE_STOPSIGNAL}" ]; then
> -       bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG}  
> --config.stopsignal ${OCI_IMAGE_STOPSIGNAL}"
> -       umoci config --image $image_name:${OCI_IMAGE_TAG} --config.stopsignal 
> ${OCI_IMAGE_STOPSIGNAL}
> +       bbdebug 1 "umoci config --image $image_spec  --config.stopsignal 
> ${OCI_IMAGE_STOPSIGNAL}"
> +       umoci config --image $image_spec --config.stopsignal 
> ${OCI_IMAGE_STOPSIGNAL}
>      fi
>      if [ -n "${OCI_IMAGE_OS}" ]; then
> -       bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG}  --os 
> ${OCI_IMAGE_OS}"
> -       umoci config --image $image_name:${OCI_IMAGE_TAG} --os ${OCI_IMAGE_OS}
> +       bbdebug 1 "umoci config --image $image_spec  --os ${OCI_IMAGE_OS}"
> +       umoci config --image $image_spec --os ${OCI_IMAGE_OS}
>      fi
>
> -    bbdebug 1 "umoci config --image $image_name:${OCI_IMAGE_TAG}  
> --architecture ${OCI_IMAGE_ARCH}"
> -    umoci config --image $image_name:${OCI_IMAGE_TAG} --architecture 
> ${OCI_IMAGE_ARCH}
> +    bbdebug 1 "umoci config --image $image_spec  --architecture 
> ${OCI_IMAGE_ARCH}"
> +    umoci config --image $image_spec --architecture ${OCI_IMAGE_ARCH}
>      # NOTE: umoci doesn't currently expose setting the architecture variant,
>      #       so if you need it use sloci instead
>      if [ -n "${OCI_IMAGE_SUBARCH}" ]; then
>         bbnote "OCI: image subarch is set to: ${OCI_IMAGE_SUBARCH}, but umoci 
> does not"
>         bbnote "     expose variants. use sloci instead if this is important"
>      fi
> -    umoci config --image $image_name:${OCI_IMAGE_TAG} --config.entrypoint 
> ${OCI_IMAGE_ENTRYPOINT}
> +    umoci config --image $image_spec --config.entrypoint 
> ${OCI_IMAGE_ENTRYPOINT}
>      if [ -n "${OCI_IMAGE_ENTRYPOINT_ARGS}" ]; then
> -       umoci config --image $image_name:${OCI_IMAGE_TAG} --config.cmd 
> "${OCI_IMAGE_ENTRYPOINT_ARGS}"
> +       umoci config --image $image_spec --config.cmd 
> "${OCI_IMAGE_ENTRYPOINT_ARGS}"
>      fi
> -    umoci config --image $image_name:${OCI_IMAGE_TAG} --author 
> ${OCI_IMAGE_AUTHOR_EMAIL}
> +    umoci config --image $image_spec --author ${OCI_IMAGE_AUTHOR_EMAIL}
>
>      # make a tar version of the image direcotry
>      #  1) image_name.tar: compatible with oci tar format, blobs and rootfs
> --
> 2.34.1
>
>
> 
>


--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#8368): 
https://lists.yoctoproject.org/g/meta-virtualization/message/8368
Mute This Topic: https://lists.yoctoproject.org/mt/101756743/21656
Group Owner: meta-virtualization+ow...@lists.yoctoproject.org
Unsubscribe: 
https://lists.yoctoproject.org/g/meta-virtualization/leave/6693005/21656/1014668956/xyzzy
 [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to