public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Silvano Cirujano Cuesta <silvano.cirujano-cuesta@siemens.com>
To: Henning Schild <henning.schild@siemens.com>
Cc: isar-users@googlegroups.com
Subject: Re: [PATCH v2 3/4] classes: allow more control over container image name and tag
Date: Mon, 2 Aug 2021 14:16:56 +0200	[thread overview]
Message-ID: <dd71dfea-b304-069f-581a-f2bb2d11cccb@siemens.com> (raw)
In-Reply-To: <20210802124517.493a5feb@md1za8fc.ad001.siemens.net>



On 02/08/2021 12:45, Henning Schild wrote:
> Am Mon, 2 Aug 2021 11:44:39 +0200
> schrieb Silvano Cirujano Cuesta <silvano.cirujano-cuesta@siemens.com>:
> 
>> On 02/08/2021 10:40, Henning Schild wrote:
>>> This patch allows more fine-grained control over how the resulting
>>> container will be tagged. Where the default name will be PN together
>>> with DISTRO and ARCH, and tag will be derived from PV and PR
>>>
>>> Signed-off-by: Henning Schild <henning.schild@siemens.com>
>>> ---
>>>  RECIPE-API-CHANGELOG.md                        |  4 ++++
>>>  meta/classes/container-img.bbclass             |  4 +---
>>>  meta/classes/image-container-extension.bbclass | 11 ++++++-----
>>>  meta/classes/image-sdk-extension.bbclass       |  2 +-
>>>  4 files changed, 12 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md
>>> index 806c2914f13f..284583e28120 100644
>>> --- a/RECIPE-API-CHANGELOG.md
>>> +++ b/RECIPE-API-CHANGELOG.md
>>> @@ -292,3 +292,7 @@ Migrate your patches so they can be applied
>>> with "git am", or 
>>>  Kernel image name for arm64 platforms is vmlinux now. Image format
>>> was not changed (uncompressed executable) but now it is named
>>> correctly. +
>>> +### Change default "image_name:tag" when building container images
>>> +
>>> +The name used to be rather static and the tag was always "latest",
>>> now the values are derived from recipe variables PN, PV, PR. diff
>>> --git a/meta/classes/container-img.bbclass
>>> b/meta/classes/container-img.bbclass index
>>> 79ef3e8d756b..9928a58ef53d 100644 ---
>>> a/meta/classes/container-img.bbclass +++
>>> b/meta/classes/container-img.bbclass @@ -9,10 +9,8 @@
>>> do_container_image[stamp-extra-info] = "${DISTRO}-${MACHINE}"
>>> do_container_image[vardeps] += "CONTAINER_FORMATS"
>>> do_container_image(){
>>> -    rootfs_id="${DISTRO}-${DISTRO_ARCH}"
>>> -
>>>      bbdebug 1 "Generate container image in these formats:
>>> ${CONTAINER_FORMATS}"
>>> -    containerize_rootfs "${IMAGE_ROOTFS}" "${rootfs_id}"
>>> "${CONTAINER_FORMATS}"
>>> +    containerize_rootfs "${IMAGE_ROOTFS}" "${CONTAINER_FORMATS}"
>>>  }
>>>  
>>>  addtask container_image before do_image after do_image_tools
>>> diff --git a/meta/classes/image-container-extension.bbclass
>>> b/meta/classes/image-container-extension.bbclass index
>>> 0e70ba9c1405..43b67f9d864d 100644 ---
>>> a/meta/classes/image-container-extension.bbclass +++
>>> b/meta/classes/image-container-extension.bbclass @@ -6,15 +6,16 @@
>>>  # This class extends the image.bbclass for containerizing the root
>>> filesystem. 
>>>  CONTAINER_FORMATS ?= "docker-archive"
>>> +CONTAINER_IMAGE_NAME ?= "${PN}-${DISTRO}-${DISTRO_ARCH}"
>>> +CONTAINER_TAG ?= "${PV}-${PR}"  
>>
>> These new variables aren't documented anywhere. But they should,
>> right?
> 
> They could but probably do not need to. There are many things in Isar
> that are not or not fully documented. But yes ... the documentation
> probably still needs updating because you documented a lot.
> 
>> Additionally I'd rather use CONTAINER_IMAGE_TAG (instead of
>> CONTAINER_TAG) for correctness and consistency.
> 
> The strings are inspired by "docker help tag". Where the one is
> "TARGET_IMAGE" and the other is "TAG". But i will rename
> CONTAINER_IMAGE_NAME to CONTAINER_TARGET_IMAGE because i will have to
> touch those docs.

Docker was first there, but they weren't that good naming things ;-)

IMO all those parameters should have the prefix "CONTAINER_IMAGE_".

  Silvano

> 
> Henning
> 
>>>  
>>>  containerize_rootfs() {
>>>      local cmd="/bin/dash"
>>>      local empty_tag="empty"
>>> -    local tag="latest"
>>> +    local tag="${CONTAINER_TAG}"
>>>      local oci_img_dir="${WORKDIR}/oci-image"
>>>      local rootfs="$1"
>>> -    local rootfs_id="$2"
>>> -    local container_formats="$3"
>>> +    local container_formats="$2"
>>>  
>>>      # prepare OCI container image skeleton
>>>      bbdebug 1 "prepare OCI container image skeleton"
>>> @@ -42,9 +43,9 @@ containerize_rootfs() {
>>>      sudo chown --recursive $(id -u):$(id -g) "${oci_img_dir}"
>>>  
>>>      # convert the OCI container image to the desired format
>>> -    image_name="isar-${rootfs_id}"
>>> +    image_name="${CONTAINER_IMAGE_NAME}"
>>>      for image_type in ${CONTAINER_FORMATS} ; do
>>> -
>>> image_archive="${DEPLOY_DIR_IMAGE}/${rootfs_id}-${image_type}.tar"
>>> +
>>> image_archive="${DEPLOY_DIR_IMAGE}/${image_name}-${tag}-${image_type}.tar"
>>> bbdebug 1 "Creating container image type: ${image_type}" case
>>> "${image_type}" in "docker-archive" | "oci-archive")
>>> diff --git a/meta/classes/image-sdk-extension.bbclass
>>> b/meta/classes/image-sdk-extension.bbclass index
>>> 426b92595554..fa15b588068c 100644 ---
>>> a/meta/classes/image-sdk-extension.bbclass +++
>>> b/meta/classes/image-sdk-extension.bbclass @@ -80,7 +80,7 @@
>>> do_populate_sdk() { # generate the SDK in all the desired container
>>> formats if [ -n "${sdk_container_formats}" ] ; then
>>>          bbnote "Generating SDK container in
>>> ${sdk_container_formats} format"
>>> -        containerize_rootfs "${SDKCHROOT_DIR}"
>>> "sdk-${DISTRO}-${DISTRO_ARCH}" "${sdk_container_formats}"
>>> +        containerize_rootfs "${SDKCHROOT_DIR}"
>>> "${sdk_container_formats}" fi
>>>  }
>>>  
>>>   
> 
-- 
  Silvano Cirujano Cuesta
-- 
Siemens AG, T RDA IOT SES-DE
Corporate Competence Center Embedded Linux


  reply	other threads:[~2021-08-02 12:16 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-02  8:40 [PATCH v2 0/4] Allow better control over container tags Henning Schild
2021-08-02  8:40 ` [PATCH v2 1/4] classes: make sure container extension can run multiple times Henning Schild
2021-08-02  8:40 ` [PATCH v2 2/4] classes: simplify tag handling in container class Henning Schild
2021-08-02  8:40 ` [PATCH v2 3/4] classes: allow more control over container image name and tag Henning Schild
2021-08-02  9:44   ` Silvano Cirujano Cuesta
2021-08-02 10:45     ` Henning Schild
2021-08-02 12:16       ` Silvano Cirujano Cuesta [this message]
2021-08-02 12:54         ` Henning Schild
2021-08-02  8:40 ` [PATCH v2 4/4] classes: fix comment in container-img class Henning Schild

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=dd71dfea-b304-069f-581a-f2bb2d11cccb@siemens.com \
    --to=silvano.cirujano-cuesta@siemens.com \
    --cc=henning.schild@siemens.com \
    --cc=isar-users@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox