From patchwork Mon Feb 15 03:39:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Silvano Cirujano Cuesta X-Patchwork-Id: 333 Return-Path: Delivered-To: ilbers.mnt@gmail.com Received: by 2002:a4a:c583:0:0:0:0:0 with SMTP id x3csp5401401oop; Mon, 15 Feb 2021 05:49:20 -0800 (PST) X-Received: by 2002:a5d:4c82:: with SMTP id z2mr17835873wrs.220.1613396960779; Mon, 15 Feb 2021 05:49:20 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1613396960; cv=pass; d=google.com; s=arc-20160816; b=jFSdyLdHuK8QkuazU3Uc6lVushazDh+SU0ksZsVhQWNFrkGXUnXtWAzryVZ42mgL/9 b/GD0YQjbg6wUuNBk8kkfUTPkczP4laaBbiKIAor/TVwxaHPpRUd4sqxi3Qv9tHZEWpr VLxdHBzgRJUpxIIWm6BJnXsghFo+tYn92Om/0Wfce1Ti3E1dgwfBYDPv4C/0afknPqri oVKiw+1lvbobS4Q1KUdVO79Bncdryx4LhRh3IuN4FWMA2xRMPBsglc9Q+CDi9kP2WjWM avZ7IzGwQCehiPmzOzpHnZRC9FyFiuTyMVQN25m52Ya2Wn7hAg1CqsNair6B/qauoEQC wAQA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:dkim-signature; bh=CchR6M4z3Tap2neysWFjlR/TcH2zZnqMXwSRhHVDYxE=; b=xaqhQuXe0VTuPVFShMallLQXdct/f76+fJijB3mchVkPPWodjNIdQitiHHsHGtaNBJ J93GGsOuAQ/UJ6EaiswLwg/6H3ceMN91bTAjhrqPklrDom310wdwebMC7afXF2G7iHTC NR/SyO13NSskXcs6gAv4OaGHO0aZJ1X5KzhRpIdnnCI9oKgNeDvOXvTxvNcxZ6gVJZQe nviQ/hibhswt9633hfxPObxiEnDkw3i37orzuhSkPRJ2VKbvBuFYvHRXkqlqrHkKLd5O 7ChhZSq1Fk4o4V+fFVT+w6boZ6yWBQGWX0N52lPV8oDqAWEwYuDfJ2m+NtqQqkuo473A Gv4g== ARC-Authentication-Results: i=3; mx.google.com; dkim=pass header.i=@googlegroups.com header.s=20161025 header.b=nbvTYb0v; arc=pass (i=2 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbyhxvgaqmgqeix2avka@googlegroups.com designates 209.85.220.55 as permitted sender) smtp.mailfrom=isar-users+bncBCD6JJ6CQQFRBYHXVGAQMGQEIX2AVKA@googlegroups.com; dmarc=fail (p=NONE sp=NONE dis=NONE arc=pass) header.from=siemens.com Received: from mail-sor-f55.google.com (mail-sor-f55.google.com. [209.85.220.55]) by mx.google.com with SMTPS id 80sor4486344wma.3.2021.02.15.05.49.20 (Google Transport Security); Mon, 15 Feb 2021 05:49:20 -0800 (PST) Received-SPF: pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbyhxvgaqmgqeix2avka@googlegroups.com designates 209.85.220.55 as permitted sender) client-ip=209.85.220.55; Authentication-Results: mx.google.com; dkim=pass header.i=@googlegroups.com header.s=20161025 header.b=nbvTYb0v; arc=pass (i=2 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbyhxvgaqmgqeix2avka@googlegroups.com designates 209.85.220.55 as permitted sender) smtp.mailfrom=isar-users+bncBCD6JJ6CQQFRBYHXVGAQMGQEIX2AVKA@googlegroups.com; dmarc=fail (p=NONE sp=NONE dis=NONE arc=pass) header.from=siemens.com ARC-Seal: i=2; a=rsa-sha256; t=1613396960; cv=pass; d=google.com; s=arc-20160816; b=SRwyHubG7oYgRMknHQzapKX8aSG6Y/eT0WxlPTYqKDPwW6HIbDjjnvrIDw7XgqK5UE 1bcsEJH9vT3ABprJlNJiHBUGv2qm0fOjwXC10ugHsPUiOybR3vF48SqY0KYmWEFoiM8X w2bn0Uaxgq7Exqf+evK+LOn62cD/dGIVbBV74WZRCHYndH5zladScSlQDFYjHmvqBKb2 c5VPzix0F7IDtUtmB2ueMJjEteSqpJe5KNltPiRxAfDOHA4CFuV2K7Ts7gNxdMw18FxV pqbRaCAwJTKK77L9TNJl67VHNJO94qStOYzt3pfXQ3vGkqwWi2tF9+mcPegIXBRUQhXd sl+w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:dkim-signature; bh=CchR6M4z3Tap2neysWFjlR/TcH2zZnqMXwSRhHVDYxE=; b=Uv9Dzyhzru8ZS0MPHj3lXLK4cZ+Q/lgQKL2ZUoVfMBUMsPtNglwV1/cyRyvMtBpK+Y fHszNziCpsh/eNq4HmCMctmSlwpuyeQ9KEWqRxZ4nGFEyj8kwwd+2qMwbINtwwEdKt1a 0KtoWBvF0Mqa6yr5XsWLQqJqwZtY2YMhot51qx5WTf3/gp6QwUpJ2xe2LxG60OQt2BZg LRD/2zVoXFvl2Txrp9RkfXzny6YDjaryoWYyF7HOHnBHeQcuxPAUCxwMIlrb2jJIpqa0 2uFftUK/QFak/357PaF9JZMYEh4j51bxnwji/1VLJVo0m2Wld+pIF/V4yUpY2egN3Uj5 fITQ== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=CchR6M4z3Tap2neysWFjlR/TcH2zZnqMXwSRhHVDYxE=; b=nbvTYb0vN+DdMDHDqEgc2JwT74tlzjJAeYY65lMmKU6oa2256JldLTGPF0vojWsTKQ dbAKhTT9AMNPYnOtslHQwFJMwxbIo7LPl3BnRPj8NY/BeRZkL24d8026mNAWj5pwo9Ro xMPm6mSEAhcjKpUg9wMsN2OIuy46F+sYXvvOo9rb3p+Bl3TeAgLfdNAqPGw9rcIpW+nD SQ2Owkot9y06MYacBJZeS11TCaUdgkSF36b8kYtWgKMEEmFmi1HEvqZCNk+LuWaMyisu qwHsSm7Wt2Mspu9sxEsVaaCvgyLizIHRmIfBfdAhFvj3I/OeWU1NMLj3bsnl6IU57cL4 tGCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:subject:date:message-id :in-reply-to:references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=CchR6M4z3Tap2neysWFjlR/TcH2zZnqMXwSRhHVDYxE=; b=McdLtvgcdkETq9IjFVGEzPJBH+S6LjDZvADCKYofPpr7r3XM9GChAmu8cXGd4IOqFM A76DpuwfWU2kvP6zFyML+MeQn2YCwKWC/d9pTB1OJHbeqRXrRhQ0I+n9nOoa4hLdNDtk d2KM2y9qHS0w3S42h+nxd7sP8DAr+fWb1vTN3ZyGAITvcNM9OBj2E15qcnaza2uFLhlZ eKYA5PXPmUiPzqPfFBKl2pQ8+HVQrvAA06/+yrLY3A+PumsxbmUwx6osWtQylYFH33h3 W2dHu157OfjnRITqtalnLyAyrdVLiMtfHZuNcwKyx8+XNI7Ud8nIjxKvmOT4MoEjyXEw 7Stg== Sender: isar-users@googlegroups.com X-Gm-Message-State: AOAM533Pd3+9Gfqd5lnvCwFV4L5fLAn5RFpsOHbJzJGQoc16wnWZiGLc rr+DI7ErhGPhflYh/Wr2eCU= X-Google-Smtp-Source: ABdhPJyXEqbjXydkfmHQMiOfcK5MDSmHCEOBebIKPsKxVfJXzV8pgL9+Fc+oaxQVcCYsD0FIY4BxBw== X-Received: by 2002:a1c:5584:: with SMTP id j126mr14854354wmb.153.1613396960530; Mon, 15 Feb 2021 05:49:20 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a1c:193:: with SMTP id 141ls516003wmb.3.canary-gmail; Mon, 15 Feb 2021 05:49:19 -0800 (PST) X-Received: by 2002:a7b:ca4d:: with SMTP id m13mr2536541wml.118.1613396959826; Mon, 15 Feb 2021 05:49:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613396959; cv=none; d=google.com; s=arc-20160816; b=spaio747tAxUAgilaG5rrwmT+MrdvF9lGiHxfG3a2PWxe9R3sQuwToO/wXzf74DMCM axHtu+W/ZcQD/+utaxQiAbQ4okWNOUmynZ+KdKEi05fnUuTH3LdyW4jd5oD+DnKgMbYL XJJyV0nBZcNOxsWLD2evFVHQHwiTvYTsGYDaL5z4Za3cx3mc5yxKO4dBUKueN0mypTgo iLHc9Si/Kt/cunobYONaAzw+JTjyj5XocdNsXxdzVGtYcExKtJo7ElH+G9Igrr2PmZtP DtmybFBBzbJSzmItN0l7AE4Z2U7t3Q2ZNI25rZctp2Zlu/jJfF01xs1giMxoshjX3R2G YTeA== 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:date:subject:to:from; bh=VzDaXdILORngJmNL34nM1xIixNrnI1wH/mMD5WlXBmw=; b=u9/LBEKZeAUTGjKpAZ3fPZ2lQOdYkKRCYsM1KbsOGnux8SOc4NadBSlMnAgIwqBP3M xLJaNAEd8IpqOHzDlreonnyQHec7u1tXs4Q7dREmZhF6wO0UaRN0w620TiuG3a7lS0EJ 9CqnYHrQXMg1DHb8M774FibtaT56gXNUKi8IIrONm/7dlgqQ+ibfBwMQ6DO4DloqgPqV v3N6FtCxqqyaK1CUYShKPr04QvkmyQLYsZd63AR07hqi/Km1OVhA3YeJLHRblq/hioy/ l5/SpepdatXwchRCl42OtScvl8kPnK98fOuX39YDO6p7Ta3ekOHZdurKA9GB01WZGTfG 1uYQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id v16si1011641wmh.1.2021.02.15.05.49.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 15 Feb 2021 05:49:19 -0800 (PST) Received-SPF: pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) client-ip=194.138.37.40; Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id 11FDnJXX022611 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 15 Feb 2021 14:49:19 +0100 Received: from md1sf36c.ad001.siemens.net ([139.22.119.30]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 11FDdIHE008716 for ; Mon, 15 Feb 2021 14:39:19 +0100 From: Silvano Cirujano Cuesta To: isar-users@googlegroups.com Subject: [PATCH v5 1/4] classes: add root filesystem containerizing class Date: Mon, 15 Feb 2021 14:39:15 +0100 Message-Id: <20210215133918.50988-2-silvano.cirujano-cuesta@siemens.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210215133918.50988-1-silvano.cirujano-cuesta@siemens.com> References: <20210215133918.50988-1-silvano.cirujano-cuesta@siemens.com> MIME-Version: 1.0 X-Original-Sender: silvano.cirujano-cuesta@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1691769331731589324?= X-GMAIL-MSGID: =?utf-8?q?1691769331731589324?= This class can be used to create container images which root filesystem is that generated by the do_rootfs task. Containerized root filesystems have following possible use-cases: - Using ISAR as a container image builder. - Simplify distribution of runtime rootfs (binaries, libraries, configurations, ...) for application development or testing. - Distributing SDKs. Signed-off-by: Silvano Cirujano Cuesta --- .../classes/image-container-extension.bbclass | 79 +++++++++++++++++++ meta/classes/image.bbclass | 1 + 2 files changed, 80 insertions(+) create mode 100644 meta/classes/image-container-extension.bbclass diff --git a/meta/classes/image-container-extension.bbclass b/meta/classes/image-container-extension.bbclass new file mode 100644 index 0000000..a49a435 --- /dev/null +++ b/meta/classes/image-container-extension.bbclass @@ -0,0 +1,79 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2021 +# +# SPDX-License-Identifier: MIT +# +# This class extends the image.bbclass for containerizing the root filesystem. + +CONTAINER_FORMATS ?= "docker-archive" + +containerize_rootfs() { + local cmd="/bin/dash" + local empty_tag="empty" + local full_tag="latest" + local oci_img_dir="${WORKDIR}/oci-image" + local rootfs="$1" + local rootfs_id="$2" + local container_formats="$3" + + # prepare OCI container image skeleton + bbdebug 1 "prepare OCI container image skeleton" + rm -rf "${oci_img_dir}" + sudo umoci init --layout "${oci_img_dir}" + sudo umoci new --image "${oci_img_dir}:${empty_tag}" + sudo umoci config --image "${oci_img_dir}:${empty_tag}" \ + --config.cmd="${cmd}" + sudo umoci unpack --image "${oci_img_dir}:${empty_tag}" \ + "${oci_img_dir}_unpacked" + + # add root filesystem as the flesh of the skeleton + sudo cp -a "${rootfs}"/* "${oci_img_dir}_unpacked/rootfs/" + + # pack container image + bbdebug 1 "pack container image" + sudo umoci repack --image "${oci_img_dir}:${full_tag}" \ + "${oci_img_dir}_unpacked" + sudo umoci remove --image "${oci_img_dir}:${empty_tag}" + sudo rm -rf "${oci_img_dir}_unpacked" + + # no root needed anymore + sudo chown --recursive $(id -u):$(id -g) "${oci_img_dir}" + + # convert the OCI container image to the desired format + image_name="isar-${rootfs_id}" + for image_type in ${CONTAINER_FORMATS} ; do + image_archive="${DEPLOY_DIR_IMAGE}/${rootfs_id}-${image_type}.tar" + bbdebug 1 "Creating container image type: ${image_type}" + case "${image_type}" in + "docker-archive" | "oci-archive") + if [ "${image_type}" = "oci-archive" ] ; then + target="${image_type}:${image_archive}:latest" + else + target="${image_type}:${image_archive}:${image_name}:latest" + fi + rm -f "${image_archive}" "${image_archive}.xz" + bbdebug 2 "Converting OCI image to ${image_type}" + skopeo --insecure-policy copy \ + "oci:${oci_img_dir}:${full_tag}" "${target}" + bbdebug 2 "Compressing image" + xz -T0 "${image_archive}" + ;; + "oci") + tar --create --xz --directory "${oci_img_dir}" \ + --file "${image_archive}.xz" . + ;; + "docker-daemon" | "containers-storage") + if [ -f /.dockerenv ] || [ -f /run/.containerenv ] ; then + die "Adding the container image to a container runtime (${image_type}) not supported if running from a container (e.g. 'kas-container')" + fi + skopeo --insecure-policy copy \ + "oci:${oci_img_dir}:${full_tag}" \ + "${image_type}:${image_name}:latest" + ;; + *) + die "Unsupported format for containerize_rootfs: ${image_type}" + ;; + esac + done +} + diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index eddc444..ec93cab 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -76,6 +76,7 @@ inherit image-tools-extension inherit image-postproc-extension inherit image-locales-extension inherit image-account-extension +inherit image-container-extension # Extra space for rootfs in MB ROOTFS_EXTRA ?= "64" From patchwork Mon Feb 15 03:39:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Silvano Cirujano Cuesta X-Patchwork-Id: 332 Return-Path: Delivered-To: ilbers.mnt@gmail.com Received: by 2002:a4a:c583:0:0:0:0:0 with SMTP id x3csp5398410oop; Mon, 15 Feb 2021 05:44:39 -0800 (PST) X-Received: by 2002:a1c:e905:: with SMTP id q5mr14540184wmc.84.1613396679181; Mon, 15 Feb 2021 05:44:39 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1613396679; cv=pass; d=google.com; s=arc-20160816; b=LsdZE0IWjOWt9jYtgUTPbM6VsiNhbcfPD2qPzYnBkpfyP1nmOPJlauARlNwyVKKLk0 VYc8whVz1Lc1XiZ0qoSZbbHiEUUMbU6VjLFk8dnGCS0s5JiYZexV4KsIrFPTQfOe5c4J +C1rCiNP2XoUWlI9BjEbC3vZc/43+kY8fWYoXzfclOGxF7JwDOLKCGU4HMtykXhJ+X3V K5JS7CAaDxwC5YxIsP6c4AQW73Px8ltS1wVJ7q0erD61cakU6hRgGQkUZUVTA35e/Ebn q/8FoEbbAtdtwp7+rIk8gT7ZhOwtwiTNAsh5m+gecC8ZoQ1HGVqxKRCl+FohiXFIY0KU YvMA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:dkim-signature; bh=awg/g6v1p3pgtsfxLz2AtQ463djFnVdANJN/Pi3r0PY=; b=S7bblQq4N0/2RnTv2X4PUDdLaS6tMnRLTq6QIRH1BKLmQV12aNC2gg9/DTufRCjpPM m0dh7jCfW//d7bzNoakGmNnxaXhh7+jKjGP9wc8eDtIYmQN/HOI0m6jELQ952ke6FkaY R7kZ9tmTUgcRszNFQ129IcaR/WqZp+J9woAMLTzeNPqDU1ZkYbio6wcRiIoAlVDThR6V 4uq0hBYjhwZOmjuf4zkKked6uN0916M73nFZoXOgB0nTwrk7Yurie67OYoUGlkZkQZm6 ZZTsNtFG9mcNRvTzWEHeBhB74qJwkcALoJw32BA9YK1APT+1A/+4XGzKI5jx9q6nI+F7 u8nQ== ARC-Authentication-Results: i=3; mx.google.com; dkim=pass header.i=@googlegroups.com header.s=20161025 header.b=mhnftxr7; arc=pass (i=2 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbrxvvgaqmgqe2rskm5i@googlegroups.com designates 209.85.220.55 as permitted sender) smtp.mailfrom=isar-users+bncBCD6JJ6CQQFRBRXVVGAQMGQE2RSKM5I@googlegroups.com; dmarc=fail (p=NONE sp=NONE dis=NONE arc=pass) header.from=siemens.com Received: from mail-sor-f55.google.com (mail-sor-f55.google.com. [209.85.220.55]) by mx.google.com with SMTPS id x21sor8523758wmc.9.2021.02.15.05.44.39 (Google Transport Security); Mon, 15 Feb 2021 05:44:39 -0800 (PST) Received-SPF: pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbrxvvgaqmgqe2rskm5i@googlegroups.com designates 209.85.220.55 as permitted sender) client-ip=209.85.220.55; Authentication-Results: mx.google.com; dkim=pass header.i=@googlegroups.com header.s=20161025 header.b=mhnftxr7; arc=pass (i=2 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbrxvvgaqmgqe2rskm5i@googlegroups.com designates 209.85.220.55 as permitted sender) smtp.mailfrom=isar-users+bncBCD6JJ6CQQFRBRXVVGAQMGQE2RSKM5I@googlegroups.com; dmarc=fail (p=NONE sp=NONE dis=NONE arc=pass) header.from=siemens.com ARC-Seal: i=2; a=rsa-sha256; t=1613396679; cv=pass; d=google.com; s=arc-20160816; b=fpNqCCE6h2ptG8jIpaNK+5JRnoeXPqxzVlAgkHQFUyDoiALZSA4OcbdUZsqV5DyqhE +ZWZVTrKK0uTEYj5Ub6WYXUsgI8vbuQYd6Kf81j13amPNjFkfIXRWxa5tHnW6uIani5C qYzC61/XklrpDNJMKHY/x00nlpF1FSDP0iG90HjlU0Gjjfk0SJIk8DfRxg5KLBx6czPB 8pUXULnycJt6k6GHGFq50RAHRXflSie3T8FThzsogcT04421Nfy6xLh6WjdB26kI+Idw s1XgXf1c11J9vNhtJDei+8esZ2GSYNzd5CV0rJnX5f+hegJ0gRHcXYA8Tkw6Acl2LD7R xiDg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:dkim-signature; bh=awg/g6v1p3pgtsfxLz2AtQ463djFnVdANJN/Pi3r0PY=; b=oSePL11+mQl3BS5BxLbICGjCeMZhVAwWhq3c0Rsy6jp/ZMy51MFLc6ke6bNaB9ootj A+sOzJVbzFqFs/B1SEtjI6qHGenZL96EMOx9Pfqx3TT+HYsVQfANUDidCnl0j4hA6nLq 99T6sCf1/dOEkEYY49QzhS5na4d0Cgq/yYnEZ+4WaGSLBz7gY0Y2ESxBcu6oD7AYXmW+ AyQUHL5Pj4QWpswf0f6mgmON2lImhHSsEdPPJOY21gLkG/32AB20XakAp0r3JeipSgIP wkpZrMQA7n51EEl1N2cPsB0IhyCK6g3S/qpwfFN4rSeH304RuGi5r7lyn8KT7fOveebv oISQ== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=awg/g6v1p3pgtsfxLz2AtQ463djFnVdANJN/Pi3r0PY=; b=mhnftxr7EMf52+lDUVNkX1ubUbqX3jzPfX/Cb5fENwxFIdFq0mqxYoSBz78bslcvtS Al9cFrgGxCwX+tXUUO5ZBRMU2VmrTNMNnVts/3zl20BzfRfG6URgvb1tE26tz+9uXSsv 7kfRmmCVDjxDlBD3a0fG//BBa+3xaQUM4acVir4AIS8ZeFZFVZq8gTI9k4MeTMYTP9V6 /pD+neYT0JMWE5XmA5wmRdNHhwHlZDBuaSMf/fZiErTrf1wX2vsqeT4skeiFE2ixFZb6 3e3V+2JCN0cY9P2fDKkMW+a1OggqzN+cYtOBZHsMSmNB9VyyMnd7ZQgPVBbHop9pbkz+ 1oSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:subject:date:message-id :in-reply-to:references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=awg/g6v1p3pgtsfxLz2AtQ463djFnVdANJN/Pi3r0PY=; b=huM9PN079L8jG/Dnkj69008+6lwraUT7tzcsExaAvP2kb+br0+ZhRe1mSfGpyBKgLe LXhrb8oKVHBTQORziUIONFmBPZHSgj3jeezfGkBMUAkW+YqLM2upsu88RL6ZTCQcmCTn ST5a5Ms9R8sfdyeR+W+K5NTVjh7KLraBq8vKFh5ml4CCEHYZF6/5L3rRih47mCKGahdC 1VoU/kCKboSnSuCg83phG6ImV9o+X5o8f2kn/LdejwoD0Gpc0u1fatMcp+YDX0GjdE8C KfTWQ1t7WOFVT8bh4AfUxf27Jy8/cL6Wg3wRg0xW+jeph+R8AGkObqWkvLfZeDriwgmM 6AgA== Sender: isar-users@googlegroups.com X-Gm-Message-State: AOAM530Noam476DU4lyilAkjiCC7hynOT/+KrtOmKht4jhT5pP0w050H 0BQ9CFMbUMbTEEpWycEZy5M= X-Google-Smtp-Source: ABdhPJwbzkl0zSgXum46go38fC8+Avgm5CGBkXnpDWLgHPIXUn0rZ//jc0wtXix2Zi0gInDWyGrx5A== X-Received: by 2002:a1c:4904:: with SMTP id w4mr14521147wma.180.1613396678956; Mon, 15 Feb 2021 05:44:38 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a1c:770f:: with SMTP id t15ls511313wmi.0.gmail; Mon, 15 Feb 2021 05:44:38 -0800 (PST) X-Received: by 2002:a1c:1dcc:: with SMTP id d195mr14852678wmd.42.1613396675156; Mon, 15 Feb 2021 05:44:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613396659; cv=none; d=google.com; s=arc-20160816; b=z6UTDDQWi/yOcXZ8Dy1aWgwBxfbKuRQ06yCOgrQ21EvHxadxgCJXG+viXH3JiuQyIO 6NiMjjUeOqcRUt7h8ytvWUML4Fh6V1vf/uDUAkkfENhElCkmjPp8wfiwbBoZ2Cf7R7aR SoEMue8FgQ6YntpyOE7TsNDFvAX4IHbollMm0nmPhD8fVlthkTZWb67LMA9/C5tJib2K TGFN6xckv20O+lkZLvA/mH0htwLN+AoB+h+8Py7tNgt3xtAjlOWTAhZtV5oYRVcChSS+ UskOKE0vAwfRRD981H2us0ySnOYVu2rqCk5T49Z81V0nvlahaayhq6LBwytz92SeT6qr zN8Q== 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:date:subject:to:from; bh=ifb0KRMBIAXhTepcr0Mzoc6XBZiz9zoyxk9Ep6A00aA=; b=dc7jkrLfTxIOBm4eWeHGf5C/cTzlzj7p63mUN3ylwO7JvumVvt3xfIw+0n1vnhZkHM xf8cNrP/eoGINj8TkgwX3sCD1v74vTnoP7L5lJn7dOXP1aHYj3CPvBI7BMQ0TG5wQ5dy +ZK9XTN953h41lau2R2bp+b3V8AsnQxqUPGoDIWlCOlUMMvWB02G3cOVy8AcvABu+Wp/ 8b1x5Q+EdKTjJTetr/7wCrLzGCMWVuBji11KBSCk3URZwOxyMe9MUW/9EquQgqFPFGZb xx841SxmpwLnhl34WbJVwhsxJaqs5kkxsDO7wmBrOUfwvizPtfH6qh4385BdObOehcYy fJCQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id z206si585029wmc.0.2021.02.15.05.44.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 15 Feb 2021 05:44:19 -0800 (PST) Received-SPF: pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) client-ip=194.138.37.40; Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id 11FDiJ2E015664 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 15 Feb 2021 14:44:19 +0100 Received: from md1sf36c.ad001.siemens.net ([139.22.119.30]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 11FDdIHF008716 for ; Mon, 15 Feb 2021 14:39:19 +0100 From: Silvano Cirujano Cuesta To: isar-users@googlegroups.com Subject: [PATCH v5 2/4] classes: add new image type 'container-img' Date: Mon, 15 Feb 2021 14:39:16 +0100 Message-Id: <20210215133918.50988-3-silvano.cirujano-cuesta@siemens.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210215133918.50988-1-silvano.cirujano-cuesta@siemens.com> References: <20210215133918.50988-1-silvano.cirujano-cuesta@siemens.com> MIME-Version: 1.0 X-Original-Sender: silvano.cirujano-cuesta@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1691769036313341045?= X-GMAIL-MSGID: =?utf-8?q?1691769036313341045?= Add a new "image" class for generating a container image containing the target root filesystem. Signed-off-by: Silvano Cirujano Cuesta --- meta/classes/container-img.bbclass | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 meta/classes/container-img.bbclass diff --git a/meta/classes/container-img.bbclass b/meta/classes/container-img.bbclass new file mode 100644 index 0000000..79ef3e8 --- /dev/null +++ b/meta/classes/container-img.bbclass @@ -0,0 +1,18 @@ +# This software is a part of ISAR. +# Copyright (C) Siemens AG, 2021 +# +# SPDX-License-Identifier: MIT +# +# This class provides the task 'containerize_rootfs' +# to create container images containing the target rootfs. + +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}" +} + +addtask container_image before do_image after do_image_tools From patchwork Mon Feb 15 03:39:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Silvano Cirujano Cuesta X-Patchwork-Id: 330 Return-Path: Delivered-To: ilbers.mnt@gmail.com Received: by 2002:a4a:c583:0:0:0:0:0 with SMTP id x3csp5398175oop; Mon, 15 Feb 2021 05:44:22 -0800 (PST) X-Received: by 2002:a05:6512:3383:: with SMTP id h3mr8609408lfg.273.1613396661856; Mon, 15 Feb 2021 05:44:21 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1613396661; cv=pass; d=google.com; s=arc-20160816; b=r6WPIvJ6bgOpwvYu9BRBcTTfntNAoQQ9h9THdA2Kv6rTi3KmFdH0ksRruUiSBcc5IS XsSwCbxfnsxRCjhuUI4Oe+kGvNhPECuzXnBXlnyh7xLV68c8ZXZ92nMKw/75DWqaD6OJ 1mDfDb4Ba1YdPXurjalJ504FVh9AspghH3dHTF53Oo5UQ4+U4AalnG1eo8TaAr++QnHz 3FidTKj7h8V18INpu+N3v52fCNngxoruR95NjzKCoZEUAH0RnPG2Rj9g4C3rqQwDeeud zQXXzIGR5BD/PEhVOMmVAZt7/HSHRBsenX+Yuj6MmEX2qIfeZaCMl2LletNd2vkTwTJj AaXQ== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:dkim-signature; bh=tMB01BCOFVnC4yBuVS6lBSv7Rq0MY6HrVoBnX/8eAM0=; b=cziobmX6nieJnRbeliQS/a+QDHt/n80sBvQ0V+F9r5HN0wTHggbN8LX5oG8zcJBqLh uf9rcqNRgfWDuNpnooomAVQirdXD8MlQnBZGe3z486clUkB+3dxaADrJOP/rKe746WkA QucO0uLNNgcV1tW11TcsDEDQdwVXI1pxP0WbPkJVHjVSfL7FEE3bH3iGpYRuLNs+poSH VGL3NWTnQmvEEOYDTMENZnsxlE/+GEvhNrb/Vs6IeNCDx/MbmhF50RZsczA3olZeLeNJ uMFm2pm/EcJSF843VthSNF4bYEtKVDz6adTn4uFJmmd4ZYQAFNhWZOIGqkY9kK7aSyhM Xi0A== ARC-Authentication-Results: i=3; mx.google.com; dkim=pass header.i=@googlegroups.com header.s=20161025 header.b=Pn5dJ1J7; arc=pass (i=2 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbnpvvgaqmgqeultqqqa@googlegroups.com designates 209.85.220.55 as permitted sender) smtp.mailfrom=isar-users+bncBCD6JJ6CQQFRBNPVVGAQMGQEULTQQQA@googlegroups.com; dmarc=fail (p=NONE sp=NONE dis=NONE arc=pass) header.from=siemens.com Received: from mail-sor-f55.google.com (mail-sor-f55.google.com. [209.85.220.55]) by mx.google.com with SMTPS id j6sor3524887lfj.10.2021.02.15.05.44.21 (Google Transport Security); Mon, 15 Feb 2021 05:44:21 -0800 (PST) Received-SPF: pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbnpvvgaqmgqeultqqqa@googlegroups.com designates 209.85.220.55 as permitted sender) client-ip=209.85.220.55; Authentication-Results: mx.google.com; dkim=pass header.i=@googlegroups.com header.s=20161025 header.b=Pn5dJ1J7; arc=pass (i=2 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbnpvvgaqmgqeultqqqa@googlegroups.com designates 209.85.220.55 as permitted sender) smtp.mailfrom=isar-users+bncBCD6JJ6CQQFRBNPVVGAQMGQEULTQQQA@googlegroups.com; dmarc=fail (p=NONE sp=NONE dis=NONE arc=pass) header.from=siemens.com ARC-Seal: i=2; a=rsa-sha256; t=1613396661; cv=pass; d=google.com; s=arc-20160816; b=bvGHS7yrqZFvYxiuA7sD+fjvA6ikEV44KeTgQ2SviCi47dkG8yg5EJv4HTFwHbkrMJ 5QUFR9LCFHkH/WOTXAvpthGUAWzpVerFocE9lUi3SLetcbeEsj0aofPmE0rHXIAq+Fct zQhqVDePAnkviq9NI26Fmf12Qz/sK2kiqCMRQ5s1u78ZO7ztugUUUWAIR9pmFAuIspG3 Qrf+QYmmLutmkQNHvMOzVFxCo2KoReUFErc+eiQ0dCzkAH4GWJ15fCS3IDjDkx/AukiC HxOgCQSBEquk0+VEjNkrrOY1zdppCb5yW7xsXsd/AXMNvHJI/fKcKsxqpxdoQJ/SdwMF pCpg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:to:from:sender:dkim-signature; bh=tMB01BCOFVnC4yBuVS6lBSv7Rq0MY6HrVoBnX/8eAM0=; b=aQHqVPyZp73IRXgxWCsOkB4btrvBdO+ZVYPJgSC938gto8S0FQsl+Lhg/jqJJzp0Nl ySlXF9eP7WLf5yZRYU+v/2DNJyctTQZJDnNtiMQamjXfmkr2oOfGNclT9HNfpwTwcEBF M1DEwLerVxKKkZ26USD6EJ1wr1qXO6noagEWYWyOg69FwHEAagxFZGwdDvSKCIt+SqNW kEGTgTPZeo5QiQMgghUk9eEvSvyH7N1q/nwZDytHeJE/ORtytnJ0DgLh0rehvcKpPhNU fnrM9rxYsj/yz9UikbrAoACiXzkKGcJOnMGlFIxCexfcBmGXDeOgvKBprKh+wT1WIyAH 6Ywg== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=tMB01BCOFVnC4yBuVS6lBSv7Rq0MY6HrVoBnX/8eAM0=; b=Pn5dJ1J7KR9KM/naerGadbpPBuv0SEY1nRfIpHRP1On3HgYBkx5VkedqjjeWoGXtbQ tG6Vfl0TY04/AQ6r8vz7I7KoW7lNbudNBHlnZfpY1+Fmywcao1A7WoepBm7oTFZzLwPL jdUXMefzZBmW7esOhqd79cSs3h6b4YN2g+TCtP/7y1z1hAJDcic3BCaP7a76HomHbuD8 z/mRwaaGKZOLBgexE4LlfJ1oFgBEAzE9IgoLzP5iyWSVpsWZP7JN70u9EwxWS5k/fEVl xopJWxZ4yxOe6ukvaPqD25VR+IVWq7w85cJ1MEF6W1Sp9C3xWIHQZVFwxmi8CGRwuR8y Yu1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:subject:date:message-id :in-reply-to:references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=tMB01BCOFVnC4yBuVS6lBSv7Rq0MY6HrVoBnX/8eAM0=; b=mC7cZ7MWeuaPUD3tsgdmYzHajZ0nhiL5We5qWH6ZL5C5S9NVuxWAI94xLU1IytLZN1 WUhEtBOMu9hHUkZDKTKTpdgS2xCRULqRZPCxZgAgPIGi9W+016/d5AtDK7xTR1HqnpHM jgpcJvVzRJtHPGwcbYdJW4dqOKobYW7KzKXdsK1n+IHc5mKo+IL8fmdx3ZwUQw4GPx/o LFykj8sK6ThcUhO3wF/LwRWyKVN+Dal7+4MZNc3A5HHHEYvUChYrJwV11zJ6+IgHywqh bYlRHsH/76oepG4T54/FkX7JpesYEHgpHsx7vtRLE1Q/o8JipDgFu5UUMomFg2ouYIJ0 qzSQ== Sender: isar-users@googlegroups.com X-Gm-Message-State: AOAM531il4gPicT4v70Ia9HDGbkjqcCb2mhG4eokRXqWT4V0yaf42Wm5 v3Kimzn6kVF7XC1pLdwaSx4= X-Google-Smtp-Source: ABdhPJxrOG5caaivaRgQQgP27fj1C0q9+JPy1WHx6cB0T1iAr7DANqpkAp8WK03VZho8BfCKJ4aRKA== X-Received: by 2002:a19:7b12:: with SMTP id w18mr9023228lfc.548.1613396661563; Mon, 15 Feb 2021 05:44:21 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6512:6d4:: with SMTP id u20ls377346lff.1.gmail; Mon, 15 Feb 2021 05:44:20 -0800 (PST) X-Received: by 2002:ac2:418b:: with SMTP id z11mr5150002lfh.33.1613396660648; Mon, 15 Feb 2021 05:44:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613396660; cv=none; d=google.com; s=arc-20160816; b=x875z/DBzhd121ktaSoJiVWyrJPKUvkCpbUdIWyBxF2mbAt2N2RgvxoiUIsYCaKG36 cIMhFRRWDmEAbkyW91ve4WxfxkUR9j8Pdo9yiFvg5CEwdJaX+BHQSHqoD5m24sZibtux BVfcFMM9ixw2SEPVSNahjMx3bJkYYcry0rIt/XGMJ2punuV6bhPZB+9JRWMAouFPKSGg Dy19dYaSSu8ivmykxzUYM54F9kQn75MxiA7UNSowg/Ogk7cktXrxxy5XKCoKbDAKh384 7cy7iKcdMeyKnFwx4DMgIW3FzAkuC2Yspn0y80AJe5nfsGtP+vcUs3XWjqCST+pg1YOR rnKg== 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:date:subject:to:from; bh=ilrsxfOzaENQp2ucnPYlxyLNBAHhFqzrtA+TmhEcOUo=; b=0sC+wAElTvAWuPu2Y4h+X/xHFsUoQNjyzfR18+fTcofta3kNJbIauT8bamShzC5sgT lMO+LCatnMUWS5DjEt4hQlHS+DS9wZqih8Fo/pXpF+njKO2pZVfzJ96kHz5RVR5qb1X7 hVIy07S0OUG/sQGIwaCbE1iGurSkN3+fsYMpbMqOHvCE5AWx663G20TshwTzIT2L9dAU Fd+LeExxdbk/iSeL4EQJ7i8qHjLf3EWNaiUwxt8VyrQ64SjxtsF9CPFnoHznbJwtSRWl +w7jVtMfElXMjC5pYrHf2F8YLxQfVGLwQnPqv9+YMi9OrHtyvMvw4xSu4ChdN3LZ6S0y fNTw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id s5si844651ljg.7.2021.02.15.05.44.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 15 Feb 2021 05:44:20 -0800 (PST) Received-SPF: pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) client-ip=194.138.37.40; Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id 11FDiJxZ015670 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 15 Feb 2021 14:44:19 +0100 Received: from md1sf36c.ad001.siemens.net ([139.22.119.30]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 11FDdIHG008716 for ; Mon, 15 Feb 2021 14:39:19 +0100 From: Silvano Cirujano Cuesta To: isar-users@googlegroups.com Subject: [PATCH v5 3/4] sdk: add support for containerized sdk Date: Mon, 15 Feb 2021 14:39:17 +0100 Message-Id: <20210215133918.50988-4-silvano.cirujano-cuesta@siemens.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210215133918.50988-1-silvano.cirujano-cuesta@siemens.com> References: <20210215133918.50988-1-silvano.cirujano-cuesta@siemens.com> MIME-Version: 1.0 X-Original-Sender: silvano.cirujano-cuesta@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.40 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1691769018151037848?= X-GMAIL-MSGID: =?utf-8?q?1691769018151037848?= Extend also task "populate_sdk" to support the creation of a container image containing the SDK. Signed-off-by: Silvano Cirujano Cuesta --- meta/classes/image-sdk-extension.bbclass | 42 ++++++++++++++++++++---- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/meta/classes/image-sdk-extension.bbclass b/meta/classes/image-sdk-extension.bbclass index a8c708a..426b925 100644 --- a/meta/classes/image-sdk-extension.bbclass +++ b/meta/classes/image-sdk-extension.bbclass @@ -6,11 +6,25 @@ # This class extends the image.bbclass to supply the creation of a sdk SDK_INCLUDE_ISAR_APT ?= "0" +SDK_FORMATS ?= "tar-xz" + +sdk_tar_xz() { + # Copy mount_chroot.sh for convenience + sudo cp ${SCRIPTSDIR}/mount_chroot.sh ${SDKCHROOT_DIR} + + # Create SDK archive + cd -P ${SDKCHROOT_DIR}/.. + sudo tar --transform="s|^rootfs|sdk-${DISTRO}-${DISTRO_ARCH}|" \ + -c rootfs | xz -T0 > ${DEPLOY_DIR_IMAGE}/sdk-${DISTRO}-${DISTRO_ARCH}.tar.xz + bbdebug 1 "SDK rootfs available in ${DEPLOY_DIR_IMAGE}/sdk-${DISTRO}-${DISTRO_ARCH}.tar.xz" +} do_populate_sdk[stamp-extra-info] = "${DISTRO}-${MACHINE}" do_populate_sdk[depends] = "sdkchroot:do_build" -do_populate_sdk[vardeps] += "SDK_INCLUDE_ISAR_APT" +do_populate_sdk[vardeps] += "SDK_INCLUDE_ISAR_APT SDK_FORMATS" do_populate_sdk() { + local sdk_container_formats="" + if [ "${SDK_INCLUDE_ISAR_APT}" = "1" ]; then # Copy isar-apt with deployed Isar packages sudo cp -Trpfx ${REPO_ISAR_DIR}/${DISTRO} ${SDKCHROOT_DIR}/isar-apt @@ -48,12 +62,26 @@ do_populate_sdk() { done done - # Copy mount_chroot.sh for convenience - sudo cp ${SCRIPTSDIR}/mount_chroot.sh ${SDKCHROOT_DIR} + # separate SDK formats: TAR and container formats + for sdk_format in ${SDK_FORMATS} ; do + case ${sdk_format} in + "tar-xz") + sdk_tar_xz + ;; + "docker-archive" | "oci" | "oci-archive" | "docker-daemon" | "containers-storage") + sdk_container_formats="${sdk_container_formats} ${sdk_format}" + ;; + *) + die "unsupported SDK format specified: ${sdk_format}" + ;; + esac + done - # Create SDK archive - cd -P ${SDKCHROOT_DIR}/.. - sudo tar --transform="s|^rootfs|sdk-${DISTRO}-${DISTRO_ARCH}|" \ - -c rootfs | xz -T0 > ${DEPLOY_DIR_IMAGE}/sdk-${DISTRO}-${DISTRO_ARCH}.tar.xz + # 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}" + fi } + addtask populate_sdk after do_rootfs From patchwork Mon Feb 15 03:39:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Silvano Cirujano Cuesta X-Patchwork-Id: 331 Return-Path: Delivered-To: ilbers.mnt@gmail.com Received: by 2002:a4a:c583:0:0:0:0:0 with SMTP id x3csp5398315oop; Mon, 15 Feb 2021 05:44:32 -0800 (PST) X-Received: by 2002:adf:a298:: with SMTP id s24mr18806660wra.367.1613396672078; Mon, 15 Feb 2021 05:44:32 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1613396672; cv=pass; d=google.com; s=arc-20160816; b=vpfy9me36+e5aAUPVFoeUcEPk4PetOZxxBBn73I/+3ZJpO/LiZrjsNhi8G2xS5oFGd kfEd4PmszeHqBetOoQrGLqSI0wa8fxCKeqTJurU8j+ooW89P9K2YpIbgfwM+Gf0YIz6g cYfwS+6+cCpEpdiCm+iVIUlusNjdo0AwYjtdRCJUI35ZO+j1qELp7Q2Dzk7ZstfcLz3K u8lK1fmTh/0Lru7V1VKpQs9lNB3w7bJiI061mdYpKM+6Ugpib7IciRZPTJvHSp596Fcu RJThkJo+W8x8iAZgAwJipWtIV2aAHyjCv+5g32o3umTuPMKi0bEZSsGCJIxtS4YTZTB8 k0VA== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :sender:dkim-signature; bh=trK5r1fNfEJ4KhGGCnPh+iQR8gtH7fLju6sKMjMUof8=; b=wUbicihu49pqnUNkbrZc01hZtnPmpUy0HRWu4QObNSB7HJDbgxKjaPGBOgEsMZMi/7 ivPEVfzljQrrQjvN6K+Ir7LFtmRr1afIQek7I0X9ccCpTHYB6YZ+z7f5pueizN3vjGxA J2GoB270TNltIyx62P8orHayhjU8cv6wJWFOUOt+j/Z2CWroJDDpQxJdkm/j8VYbO9qT bFXI12W85OtSs7Lx2KRJHy4XAp2MqgRnNaUHNCako1Oxx6aSl5f/7TTn3h0YUCNDHnZc sQW8GrtkE+raf38xP0R978E4jrkHLUqsp2B9eClxwUaIEwSjSQc/nRqNwzwexSNa3Rll ZZSA== ARC-Authentication-Results: i=3; mx.google.com; dkim=pass header.i=@googlegroups.com header.s=20161025 header.b=k3l02cKe; arc=pass (i=2 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbp7vvgaqmgqelxcakva@googlegroups.com designates 209.85.220.55 as permitted sender) smtp.mailfrom=isar-users+bncBCD6JJ6CQQFRBP7VVGAQMGQELXCAKVA@googlegroups.com; dmarc=fail (p=NONE sp=NONE dis=NONE arc=pass) header.from=siemens.com Received: from mail-sor-f55.google.com (mail-sor-f55.google.com. [209.85.220.55]) by mx.google.com with SMTPS id 15sor8353735wmk.9.2021.02.15.05.44.31 (Google Transport Security); Mon, 15 Feb 2021 05:44:32 -0800 (PST) Received-SPF: pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbp7vvgaqmgqelxcakva@googlegroups.com designates 209.85.220.55 as permitted sender) client-ip=209.85.220.55; Authentication-Results: mx.google.com; dkim=pass header.i=@googlegroups.com header.s=20161025 header.b=k3l02cKe; arc=pass (i=2 spf=pass spfdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of isar-users+bncbcd6jj6cqqfrbp7vvgaqmgqelxcakva@googlegroups.com designates 209.85.220.55 as permitted sender) smtp.mailfrom=isar-users+bncBCD6JJ6CQQFRBP7VVGAQMGQELXCAKVA@googlegroups.com; dmarc=fail (p=NONE sp=NONE dis=NONE arc=pass) header.from=siemens.com ARC-Seal: i=2; a=rsa-sha256; t=1613396671; cv=pass; d=google.com; s=arc-20160816; b=vT4smuvGRKpzwObrty/f6NRlAs7OYqFF8Z6sUKmQE5SclxRgemW5NHBhIZGgS+Sv5o /7cqguLw2Qs9X3n22K3igiUdVXoE0V4Ct4eqKzR3q3kbxaNONKe4rilYY6rzX8rI/jPx 4BYsqH4ykqyWkR5gXJfCtm/jKGceEyBei9SgJJm5mux2jXNra/cJ2kIMfy80zgpXIlAa ScGdhn2nWiDKvRkKAmYoz6cSz+6tL6LeR12mDkwbLMs49GMa7CnRkqkHZCUIx7t1woBw l36XFG+ydEMSMKvRCNpqGThoE0u0wHQbVxXDW2eHYetEtlb+0ha/kvDLK42n05ZbsrHi 8yLQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:to:from :sender:dkim-signature; bh=trK5r1fNfEJ4KhGGCnPh+iQR8gtH7fLju6sKMjMUof8=; b=UoA78HUNCGucPOoZYAWy8uI8MkxpB2V6TlBFhXY6Ad1Znqje1c4bj8t40HMVsPH+27 jKxpNC0aXPSyuWiMoq3WQrr4QpwYisOQQOhYmaWj9Au97PES1ftE2X8MZYJlSGG/pMHc QI8TH1KuiZLRRbEq4xxw9BHW3PVJlh0Ct5ltURBJZPuZLXbuh7BnCVCqok9f7DXj+iNk xERFVbquBRC+ElZ4sjRPGt71Lt9YnwkNxZpV4IFLMacG02L9QyL9SrPB0zWthiYfQTiD kUmm1QfzMYXH/G/2Z1/ekleFvVhIC3IauPsA4gsbjsIygXtZrGFfWmKegWkZkM5SViHb 5yyg== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :list-post:list-help:list-archive:list-subscribe:list-unsubscribe; bh=trK5r1fNfEJ4KhGGCnPh+iQR8gtH7fLju6sKMjMUof8=; b=k3l02cKe9Q9s//ofPp8MMlV5KItN+h0ctXwda5VT43n2njO7jjnrGXnFR5nvfJEUhm yu9vDo2qIkBmXZ9GUB3Vujm5WrgANWMy7i1kmO3dy5giQw3d8oQVWGLn4agHu6PjOUMl q7tNVvjAGI4na98onKl2vsJN0q54DQLXJfp5Ss9sBE48Y2G3Oq1HIKBwPdRAMiIGx5ng s97B9KAw707pXs246Z3S6KFLYT6XuSO2vMJ6cXeuWoT6EYb2W0ZFZVwBd7b0uZR5a/GN JHgpVAije0vig53QUD3qxci6bAV9r4JfJgBcTGILHsosRV0veicsEZEra4HMW2Q2HMai DyxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:x-spam-checked-in-group:list-post:list-help :list-archive:list-subscribe:list-unsubscribe; bh=trK5r1fNfEJ4KhGGCnPh+iQR8gtH7fLju6sKMjMUof8=; b=gmfOJfg+ITP0JYAPBusNISQDRTuVydw4EOkmJW2fcBgS4eNCurf7v7SO2/oKYKSlG3 2+M8kcO3h4vvymVK0kCbjmI+k1HuSGL1fqSZ7ZDTa6L6vu8mw8cCddneQIKo1hiZg1je yQhRdXQFPyTyFbw7aOEAkIPvtJrI9N9xGSGLJr4Uvu7wbS8a51/ZxRWeXYK+HO8liBfu FKZhrlnCawblg7E23UnuS6Z2FFuFf86MD8HbfFc0HTCVSa3TJVW9rIOXqjlT64LpfHko Er3yaNWl2ZNhiYDw7fwrUl97rPUv0T/NVf2zJ+JCWq3PhvRzxnUE5V8x36eifXwodMjd bwlw== Sender: isar-users@googlegroups.com X-Gm-Message-State: AOAM532/nouX9OlQTjf79NnlGB+BJB972Bp11kUIed+iYxDVwzrtqrgj Bhs4PaRmMtIao5RD5es4S0w= X-Google-Smtp-Source: ABdhPJzZxajnD1oUOWQobBEaz2jM7if0qtERRE1YHISGP/s8ewODDjHVlgn+zRlGM9GHYT37r9m9xA== X-Received: by 2002:a7b:c411:: with SMTP id k17mr6421414wmi.185.1613396671832; Mon, 15 Feb 2021 05:44:31 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a1c:2e44:: with SMTP id u65ls512252wmu.2.canary-gmail; Mon, 15 Feb 2021 05:44:31 -0800 (PST) X-Received: by 2002:a1c:5a54:: with SMTP id o81mr14640725wmb.50.1613396665611; Mon, 15 Feb 2021 05:44:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613396660; cv=none; d=google.com; s=arc-20160816; b=0q1JRXinZBL5j6MlpH3YBDNCAznwznfzvfkjlkighFdchiCvvu00rakXRarRSS5eVG X5vaSdW2nTcICRzKrIg0EPEbHaAkYqEqVB54B2QSZqHvdDnoSdCcLK9TwQxpTG65OJrR rMo1X+ixgUJIzqjbeOFjiCVZSacZ8hVJgg4zzEABsQpdUFPjJ0z8ZoOaBIGGWPUudL8k fu2CRkZaeC2o2YnKzkz24bUDEdknLSwt/uVmqUIuE1btA2b/zxVqxzJD+Cj6HaVzOwjg hvwcXsz2m4ke6iT8cr1cZS8A+taOWrWfmbITYWkNcwfA9blIVPihmD8s2wJfcWY0RVqj FeiA== 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:date:subject:to:from; bh=SxYQRnfWtdcCt2TK6gpVSxJ0DaKTtc6xbX4unwjm3vY=; b=xSqT+XX0iUPEfVWze81LD1gwveEvC3z9DeRp2yooInGdZGNLMhlleGX0rNUYsQ91ft /tltnjsJIrmUMBB3r8VsS9gmx93JN+oWeRaS7K4EOruj/JYu2WxxQdhUKcNgzsm1Q5Xo ZVEziFecu+66WbjcyS/UZb1MtLiZ4L7v95YOQrp5J5EAP5w8b/MSTL3mINEnHaVQ4ePm IESc8DpAEuljX4rAHzv+puZjcUwRKRYWIhPzxjha8aWFEeKEXvOEbPV3oYtNp6PUCvOt K4/3iALd/ubAf6XKPlSehZVygFshOvxImKsg2XlhE1NdhKOOJkAkPt/WQdeMPHOrgaLj dMpQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id v16si1011002wmh.1.2021.02.15.05.44.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 15 Feb 2021 05:44:20 -0800 (PST) Received-SPF: pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id 11FDiJaV017927 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 15 Feb 2021 14:44:19 +0100 Received: from md1sf36c.ad001.siemens.net ([139.22.119.30]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 11FDdIHH008716 for ; Mon, 15 Feb 2021 14:39:19 +0100 From: Silvano Cirujano Cuesta To: isar-users@googlegroups.com Subject: [PATCH v5 4/4] docs: document creation of container images Date: Mon, 15 Feb 2021 14:39:18 +0100 Message-Id: <20210215133918.50988-5-silvano.cirujano-cuesta@siemens.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210215133918.50988-1-silvano.cirujano-cuesta@siemens.com> References: <20210215133918.50988-1-silvano.cirujano-cuesta@siemens.com> MIME-Version: 1.0 X-Original-Sender: silvano.cirujano-cuesta@siemens.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Precedence: list Mailing-list: list isar-users@googlegroups.com; contact isar-users+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: isar-users@googlegroups.com X-Google-Group-Id: 914930254986 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1691769028928539525?= X-GMAIL-MSGID: =?utf-8?q?1691769028928539525?= Signed-off-by: Silvano Cirujano Cuesta --- doc/user_manual.md | 127 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/doc/user_manual.md b/doc/user_manual.md index a4f3d1d..f6f49bc 100644 --- a/doc/user_manual.md +++ b/doc/user_manual.md @@ -19,6 +19,7 @@ Copyright (C) 2016-2019, ilbers GmbH - [Add a Custom Application](#add-a-custom-application) - [Enabling Cross-compilation](#isar-cross-compilation) - [Create an ISAR SDK root filesystem](#create-an-isar-sdk-root-filesystem) + - [Create a containerized ISAR SDK root filesystem](#create-a-containerized-isar-sdk-root-filesystem) - [Creation of local apt repo caching upstream Debian packages](#creation-of-local-apt-repo-caching-upstream-debian-packages) @@ -84,6 +85,9 @@ If your host is >= buster, also install the following package. apt install python3-distutils ``` +If you want to generate containerized SDKs, also install the following packages: `umoci` and `skopeo`. +Umoci is provided by Debian Buster and can be installed with `apt install umoci`, Skopeo is provided by Debian Bullseye/Unstable and has to be installed either manually downloading the DEB and installing it (no other packages required) or with `apt install -t bullseye skopeo` (if unstable/bullseye included in `/etc/apt/sources.list[.d]`). + Notes: * BitBake requires Python 3.4+. @@ -223,6 +227,54 @@ qemu-system-x86_64 -m 256M -nographic -bios edk2/Build/OvmfX64/RELEASE_*/FV/OVMF qemu-system-i386 -m 256M -nographic -hda tmp/deploy/images/qemui386/isar-image-base-debian-buster-qemui386.wic.img ``` +### Generate container image with root-filesystem + +A runnable container image is generated if you set IMAGE_TYPE to 'container-img'. +Getting a container image can be the main purpose of an ISAR configuration, but not only. +A container image created from an ISAR configuration meant for bare-metal or virtual machines can be helpfull to test certain applications which requirements (e.g. libraries) can be easily resolved in a containerized environment. + +Container images can be generated in different formats, selected with the variable `CONTAINER_FORMAT`. One or more (whitespace separated) of following options can be given: + - `docker-archive`: (default) an archive containing a Docker image that can be imported with [`docker import`](https://docs.docker.com/engine/reference/commandline/import/) + - `docker-daemon`: resulting container image is made available on the local Docker Daemon + - `containers-storage`: resulting container image is made available to tools using containers/storage back-end (e.g. Podman, CRIO, buildah,...) + - `oci-archive`: an archive containing an OCI image, mostly for archiving as seed for any of the above formats + +Following formats don't work if running `bitbake ...` (to build the image) from inside of a container (e.g. using `kas-container`): `docker-daemon` and `containers-storage`. +It's technically possible, but requires making host resources (e.g. the Docker Daemon socket) accessible in the container. +What can endanger the stability and security of the host. + +The resulting container image archives (only for `docker-archive` and `oci-archive`) are made available as `tmp/deploy/images/${MACHINE}/${DISTRO}-${DISTRO_ARCH}-${container_format}.tar.xz` (being `container_format` each one of the formats specified in `CONTAINER_FORMAT`). + +### Example + + - Make the relevant environment variables available to the task + +For one-shot builds (use `local.conf` otherwise): + +``` +export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE IMAGE_TYPE CONTAINER_FORMAT" +export IMAGE_TYPE="container-img" +export CONTAINER_FORMAT="docker-archive" +``` + + - Trigger creation of container image from root filesystem + +``` +bitbake mc:qemuarm-buster:isar-image-base +``` + + - Load the container image into the Docker Daemon + +``` +xzcat build/tmp/deploy/images/qemuarm/debian-buster-armhf-docker-archive.tar.xz | docker load +``` + + - Run a container using the container image (following commands starting with `#~:` are to be run in the container) + +``` +docker run --rm -ti --volume "$(pwd):/build" isar-buster-armhf:latest +``` + --- ## Terms and Definitions @@ -834,6 +886,81 @@ ii crossbuild-essential-armhf 12.3 all Inf ~# ``` +## Create a containerized ISAR SDK root filesystem + +### Motivation + +Distributing and using the SDK root filesystem created following the instructions in "[Create an ISAR SDK root filesystem](#create-an-isar-sdk-root-filesystem)" becomes easier using container images (at least for those using containers anyway) +A "containerized" SDK adds to those advantages of a normal SDK root filesystem the comfort of container images. + +### Approach + +Create container image with SDK root filesystem with installed cross-toolchain for target architecture and ability to install already prebuilt target binary artifacts. +Developer: + - runs a container based on the resulting container image mounting the source code to be built, + - develops applications for target platform on the container and + - leaves the container getting the results on the mounted directory. + +### Solution + +User specifies the variable `SDK_FORMAT` providing a space-separated list of SDK formats to generate. + +Supported formats are: + - `tar-xz`: (default) is the non-containerized format that results from following the instructions in "[Create an ISAR SDK root filesystem](#create-an-isar-sdk-root-filesystem)" + - `docker-archive`: an archive containing a Docker image that can be imported with [`docker import`](https://docs.docker.com/engine/reference/commandline/import/) + - `docker-daemon`: resulting container image is made available on the local Docker Daemon + - `containers-storage`: resulting container image is made available to tools using containers/storage back-end (e.g. Podman, CRIO, buildah,...) + - `oci-archive`: an archive containing an OCI image, mostly for archiving as seed for any of the above formats + +User manually triggers creation of SDK formats for his target platform by launching the task `do_populate_sdk` for target image, f.e. +`bitbake -c do_populate_sdk mc:${MACHINE}-${DISTRO}:isar-image-base`. +Packages that should be additionally installed into the SDK can be appended to `SDK_PREINSTALL` (external repositories) and `SDK_INSTALL` (self-built). + +Following formats don't work if running `bitbake -c do_populate_sdk ...` (to generate the containerized SDK) from inside of a container (e.g. using `kas-container`): `docker-daemon` and `containers-storage`. +It's technically possible, but requires making host resources (e.g. the Docker Daemon socket) accessible in the container. +What can endanger the stability and security of the host. + +The resulting SDK formats are archived into `tmp/deploy/images/${MACHINE}/sdk-${DISTRO}-${DISTRO_ARCH}-${sdk_format}.tar.xz` (being `sdk_format` each one of the formats specified in `SDK_FORMATS`). +The SDK container directory `/isar-apt` contains a copy of isar-apt repo with locally prebuilt target debian packages (for ). +One may get into an SDK container and install required target packages with the help of `apt-get install :` command. +The directory with the source code to develop on should be mounted on the container (with `--volume :`) to be able to edit files in the host with an IDE and build in the container. + +### Example + + - Make the SDK formats to generate available to the task + +For one-shot builds (use `local.conf` otherwise): + +``` +export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE SDK_FORMATS" +export SDK_FORMATS="docker-archive" +``` + + - Trigger creation of SDK root filesystem + +``` +bitbake -c do_populate_sdk mc:qemuarm-buster:isar-image-base +``` + + - Load the SDK container image into the Docker Daemon + +``` +xzcat build/tmp/deploy/images/qemuarm/sdk-debian-buster-armhf-docker-archive.tar.xz | docker load +``` + + - Run a container using the SDK container image (following commands starting with `#~:` are to be run in the container) + +``` +docker run --rm -ti --volume "$(pwd):/build" isar-sdk-buster-armhf:latest +``` + + - Check that cross toolchains are installed + +``` +:~# dpkg -l | grep crossbuild-essential-armhf +ii crossbuild-essential-armhf 12.3 all Informational list of cross-build-essential packages +``` + ## Creation of local apt repo caching upstream Debian packages ### Motivation