From: Silvano Cirujano Cuesta <silvano.cirujano-cuesta@siemens.com>
To: Henning Schild <henning.schild@siemens.com>, 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 11:44:39 +0200 [thread overview]
Message-ID: <fa0017c7-93de-e2c1-15ea-121042f6d0c6@siemens.com> (raw)
In-Reply-To: <20210802084041.1320-4-henning.schild@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?
Additionally I'd rather use CONTAINER_IMAGE_TAG (instead of CONTAINER_TAG) for correctness and consistency.
>
> 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
next prev parent reply other threads:[~2021-08-02 9:44 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 [this message]
2021-08-02 10:45 ` Henning Schild
2021-08-02 12:16 ` Silvano Cirujano Cuesta
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=fa0017c7-93de-e2c1-15ea-121042f6d0c6@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