From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6989998000320806912 X-Received: by 2002:a05:6000:227:: with SMTP id l7mr16802327wrz.289.1627908850977; Mon, 02 Aug 2021 05:54:10 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:4fc1:: with SMTP id o1ls2971766wmq.2.canary-gmail; Mon, 02 Aug 2021 05:54:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwhyStj500cZ6uXLyPPHuB7K6j8iwdeP92iJeOoH7tYYN3wNDt+pOqJPNNod7iAgvJFNxFP X-Received: by 2002:a05:600c:219:: with SMTP id 25mr16848499wmi.49.1627908849979; Mon, 02 Aug 2021 05:54:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627908849; cv=none; d=google.com; s=arc-20160816; b=sZnFwraIWJS3GwE8OmDpHq3VIn3mc0jGSVsraow2rLxRGES42NzGTLv1eIRUrB4pOB dn947iEX6yIcxJjo/JGW5HYxFn+l32jHc5MDGcftod7ObtbCddF9AOQkF3iAE7XjN7+x Qg02IFIj3/aiv41ZlesV/Yr96XGx4UpuqG3UxVpRDcQjPnVDhm2L94XDl+g0Z1mJYDJt DrImz0poFAskINyOBkh4BMULKzJhHJNKgowUqqlQFr2vj9KKg2b+WDz4/BPE59X2b1c6 auj4Z9cki0ORVVZR/fULyb1kKT4pVUs61UaIyqiemtwP8zyqY5/6FiBpmj303GunC2tT 1zwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date; bh=3l6TkAGve8YxH0i3gdvTmISL0Psu4ktF5CjYbxaWdms=; b=idGQcDCHmQRl0+45Dz6ng7LV6hVfXU5e42WzM3fZTu3iHK5qJJm2vjRyc542AIn7tJ EGWk/OhMb3bCF79Yw05h24b/xnF4Eat/tvQaGQm+wzNdiwN0X1BvWE4kk32hdN+4gzkT LMt2JQD5DbvBpt1UR9IJWJX5fA58csY7iexu4fgw3UoX2kw+cMigVlh+8GqB2x2w/7Ut 6QHg5hI+wdP3lkNcSXtOK1gCm0+pL6aHdW+VBknQaDp3RRZRM7+dolDazDDkcRJqxi6N C4PI1blM/a8PIAZlPbAll5A0jt86Ji6V0ayZQ9kPqo8N1l4dbdxgAu0EcDKWcBRBgoVI VYVg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id m33si422200wms.0.2021.08.02.05.54.09 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 02 Aug 2021 05:54:09 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id 172Cs95U006343 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 2 Aug 2021 14:54:09 +0200 Received: from md1za8fc.ad001.siemens.net ([139.25.0.59]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 172Cs92v026115; Mon, 2 Aug 2021 14:54:09 +0200 Date: Mon, 2 Aug 2021 14:54:08 +0200 From: Henning Schild To: Silvano Cirujano Cuesta Cc: Subject: Re: [PATCH v2 3/4] classes: allow more control over container image name and tag Message-ID: <20210802145408.2ec2b73f@md1za8fc.ad001.siemens.net> In-Reply-To: References: <20210802084041.1320-1-henning.schild@siemens.com> <20210802084041.1320-4-henning.schild@siemens.com> <20210802124517.493a5feb@md1za8fc.ad001.siemens.net> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: gPuDk64Ecf0S Am Mon, 2 Aug 2021 14:16:56 +0200 schrieb Silvano Cirujano Cuesta : > On 02/08/2021 12:45, Henning Schild wrote: > > Am Mon, 2 Aug 2021 11:44:39 +0200 > > schrieb Silvano Cirujano Cuesta > > : > >> 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 > >>> --- > >>> 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_". Good idea. But this would mean also touching CONTAINER_FORMATS for consistency and having another interface break. But i will do that. Henning > 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 > >>> } > >>> > >>> > >