From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6927266035414335488 X-Received: by 2002:a5d:4d08:: with SMTP id z8mr5013663wrt.240.1613154211103; Fri, 12 Feb 2021 10:23:31 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a5d:640a:: with SMTP id z10ls1076934wru.0.gmail; Fri, 12 Feb 2021 10:23:30 -0800 (PST) X-Google-Smtp-Source: ABdhPJzQaB+D/iY34nXzQRjvNrgGi/00iYydhHewyBlfyKiHE8I6n5ThSukx7SLfOopTJDcSgyl8 X-Received: by 2002:a5d:4dd2:: with SMTP id f18mr5051323wru.115.1613154210400; Fri, 12 Feb 2021 10:23:30 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1613154210; cv=pass; d=google.com; s=arc-20160816; b=xNJ95AdBj3g+Wtb0Lhaw7R51+0bV+zzT/GTV8p5Ct/tnnlob/scMixJqh/Z11gwoXC dXl05TDN7iK9+JVGHr3EOuE5XpFfk6Om1vI4zhDCIdcLkWDItW32WkxAPM2bF5gzGTiV mx3rxL55vefNiyvTJdn5iGvgnXBsJfJs0N6SgEAGaZRuKUjD+bYZFQQxqbXXDYuJMakH 3BY7DoHImkA+oj+laQ+Voy9GbN4E5v/Fe9cC+I3/wFR+UjYLGZuXT2/SC3NcfjpR4dmv vzyh8i/eq4qFTKiv7YvMdFw8Mm7EAjiq7fPHUq35x/xVqI4YhMYmMELecAYlZMh0jpam u3uw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-language:content-transfer-encoding:in-reply-to :user-agent:date:message-id:from:references:to:subject :dkim-signature; bh=BNWF74CwGHixou2v8Sh/JB5G1XRabg9P4UZKo3/Eg5A=; b=I9qASEHIa/9UwgtoCT+vvqnLdq+aA61y9sHS0K0VTAgA2O7pBVyUKQIkvreac8OR9R dAYmiRxkXivQwNSWMAZiqyJZUjFrFajdFE/poBC28H86kkXLwOPrtjqPo4PYZ/AbH3eR UK9jP2WrRniRTCqMRtI17LPwml5tW2MA6MFKvACAqAu5EW5IyklfsM3pVBU0ark/n54v OpLdi2IsI8tLvKiMz9RDVoUKngEnKjHOtlZNXIRa0uHsZmJZuBfgvPQXQFo3NreB/QdS VzpKWm+oagLC/BJAuzgjUQc+6y18iPWzuqL0U1DKykG4VPfwf3yGr8Mcu84TAaF3b2oE 6OlA== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@siemens.onmicrosoft.com header.s=selector1-siemens-onmicrosoft-com header.b=XkzzPZ1N; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 40.107.4.75 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40075.outbound.protection.outlook.com. [40.107.4.75]) by gmr-mx.google.com with ESMTPS id c9si165706wml.2.2021.02.12.10.23.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 12 Feb 2021 10:23:30 -0800 (PST) Received-SPF: pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 40.107.4.75 as permitted sender) client-ip=40.107.4.75; Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@siemens.onmicrosoft.com header.s=selector1-siemens-onmicrosoft-com header.b=XkzzPZ1N; arc=pass (i=1 spf=pass spfdomain=siemens.com dkim=pass dkdomain=siemens.com dmarc=pass fromdomain=siemens.com); spf=pass (google.com: domain of silvano.cirujano-cuesta@siemens.com designates 40.107.4.75 as permitted sender) smtp.mailfrom=silvano.cirujano-cuesta@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JzE0PnbEfXCUUrCvrpsgv4ehAktO3YIYYE16gAeCD81AWMgb4TNO8WLsk16JFggy6HM8dOwpkCgI984SnllcQabbfVVcU30/+RLwYZw/yCYkN4naJ0cafIb81kIMYiqvS4p2wyQhXins3ZpHR1vVYcoQibNfLrGbbpmMMPzs0cZpRhv+XcKpEyRRQn4bOm2RX+ErImA5WCSkQGLacvxGhYU8j6zichXzuocVqwH/Y8Au2LI217diUHkh7UFfwvUxRvM8Jb4M4B1x69/vvAdwjRdS1wI8N80C1Wkc3qkPhVz8zivqI8LItRTDjILqTMs88zSP/eDpXm3Sn78pfexbpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BNWF74CwGHixou2v8Sh/JB5G1XRabg9P4UZKo3/Eg5A=; b=cVliY7vbwt5zakq1zgrxPxu8yW7IhLNFDlmHJ77AMu3g9cjA70i2xdjaeKEmQuoMUXERKmYl8N3yNhaag6PSrZ72MtrcAMSpna/0SMkQgLpjMZF0jEVlZrJIr26wH+zWufw5noNoJsoJeBzmovXDnyXfBzOdYlaPlvDX5Ax+NbCUTQUpMRpEK6TNxPZ49uoE11mTVggw4n6GjnCELkCqS54+69otx3UQJ6jQsNf9OPBQsMIWr5zyncFcJqw1VXHlyMtSHZZdWm5VSu7LFq3Q1n5NNSKDPpn3tYZ17o384DMgMJNQRJTRoUG3918RkRp+LfpycnHIwYgNOxElbDLwZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=siemens.com; dmarc=pass action=none header.from=siemens.com; dkim=pass header.d=siemens.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=siemens.onmicrosoft.com; s=selector1-siemens-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BNWF74CwGHixou2v8Sh/JB5G1XRabg9P4UZKo3/Eg5A=; b=XkzzPZ1N0A4FyECpuZdxIjqRwf1kmLULiN2r8HZ6twdKzIEeB+kwTVuTUoPtttmhEPFzudsQEeQkhjVlODrOBMKWptlbBpml0NzipdSgRLwi/OmpMveMmGqCVBoxBEEZVLzQ5T7QDgrjKxqjKtkzbVXzvLkv/E/H6reENJAvjmo= Authentication-Results: googlegroups.com; dkim=none (message not signed) header.d=none;googlegroups.com; dmarc=none action=none header.from=siemens.com; Received: from AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:12a::30) by AM0PR10MB2500.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:df::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.23; Fri, 12 Feb 2021 18:23:18 +0000 Received: from AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM ([fe80::bc34:442b:ac57:8283]) by AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM ([fe80::bc34:442b:ac57:8283%7]) with mapi id 15.20.3846.034; Fri, 12 Feb 2021 18:23:18 +0000 Subject: Re: [PATCH v3 1/2] images: add support for container images To: Jan Kiszka , isar-users@googlegroups.com References: <20210212085113.11013-1-silvano.cirujano-cuesta@siemens.com> <20210212085113.11013-2-silvano.cirujano-cuesta@siemens.com> From: Silvano Cirujano Cuesta Message-ID: <4f5debdf-b83f-9032-be42-00d85d83a22e@siemens.com> Date: Fri, 12 Feb 2021 19:23:10 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [2001:a61:b9b:ac02:de3a:1146:19ca:44b6] X-ClientProxiedBy: AM8P191CA0024.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:21a::29) To AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:12a::30) Return-Path: silvano.cirujano-cuesta@siemens.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2001:a61:b9b:ac02:de3a:1146:19ca:44b6] (2001:a61:b9b:ac02:de3a:1146:19ca:44b6) by AM8P191CA0024.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:21a::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.27 via Frontend Transport; Fri, 12 Feb 2021 18:23:18 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 747e27f3-e4cd-4bd2-aca9-08d8cf834537 X-MS-TrafficTypeDiagnostic: AM0PR10MB2500: X-LD-Processed: 38ae3bcd-9579-4fd4-adda-b42e1495d55a,ExtAddr X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2276; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rtQQOvx4J/5h5oWZQLCN+E8GxROS0oOPhrWmeb+/mdmmCs3KXIqbJcQwpsGl2XBAB+3VWtIoWs2HPDsgI5aqVbzDrKefNDo6iSs2nW4g1UzWV/QyQYpa45yXf8Wj84D2ct9V+l/xITC3bji88ilB2VEE2DSymINgp8I5wwlVA2ddK82Cz1QXlKdR+J8shvTnpwsL5fJJbpeKlCz1npk0dpo5Ap5x1CXPM+8QqWhTEwiwc2rs6xonsnfyR4wcJuREAH9FxZpqWdYHXwE29BvvZn1Hh9YwcoJ3tevrVFuXcibosfQH0WQzuPc4Y6KO69rYSyv8iikl6JFIjs346HFYQweLu8SUh7nmrnXh75bNOrFNiP2iJZMJiFsmvenTtFmvAsubyO7mWz6p08jRvkpOvs+r6QGVPS4zAw6zi6buveQJiEY5l1vX9ZcFGHPpU/qkEYuQkbZ4o8PPZL3wLwJ6US+MT6mvZANHH+zZV8QOl9bvR827w1sQKPeu8VO67prEe5aTz9Y1yASmhSZ4bZYki80/QdXGbzdn0rnGj6XDI54RRmCoIACy4NaKL1owMHzSnCATWFwqZkDom4fM4hi37QW9vvhdgzlchVb+bwGf+Xk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(4636009)(346002)(39860400002)(396003)(366004)(136003)(376002)(83380400001)(8676002)(6486002)(316002)(86362001)(8936002)(478600001)(53546011)(2906002)(6666004)(66556008)(5660300002)(66946007)(36756003)(31696002)(16526019)(31686004)(186003)(66476007)(2616005)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?Zk8yZW1SM1ZDMFMxZzJYdkNwSUdQcGRMcVIyeHFVVGlGMUdSTXNnZCttWTRR?= =?utf-8?B?R1F1Smc2Q21BaVVnS1NoSXJkVjFXSy9jL0hHcC82blROYjZweGNkR0JlSkJy?= =?utf-8?B?Z1d4bzhqYzN4ZzdpTTMwM0krbEZISUFONlhjY1pTQmczVlp0U1dKZEtCMUpT?= =?utf-8?B?SEtKS3dNOHM3Uk5iZnpsdDB6eGxodGlPYXo4eGR6S29BZHR3Zi9tNFY5Tjhp?= =?utf-8?B?SWt5REo3R05kYlp6VldIYkp4bkRicThJeTg3dlNrR1UxcHlpQ3Rnd2RuNkZQ?= =?utf-8?B?Zzh3amxWdXlKTGY0bmhyNVZ6dVJwdHdaaWhFQUVzbnZzM0ZzNkZvdktRTDBJ?= =?utf-8?B?WVAvSkVjN2xmUlBLZ3pZM0JmZDRVd2lKSCtBR0ZKSlE0UThqNEJkRU4yQldj?= =?utf-8?B?RmUxMlhhRU1TQVBrTGdiY2xaMDFkUWVnWFZmaHlTUWU1eU5KNTdwbjY1dWMx?= =?utf-8?B?UHYzWUhISkxrYWtPUU5IZ21TMUFtcjBOS2FqQU8rUVlTaUc4S2tTZnhrQ0pD?= =?utf-8?B?UjhFK1dNK3BkeVNvVy96c3lHZkN3cE1HWVBZdTEwRzZrOWZydTRVamdiRzdj?= =?utf-8?B?Z040UFdaZU5aNVMzM0xyRkE3b0toc3VMZ2t1TmNkTm1BajRMSzVmZEhEcFI1?= =?utf-8?B?b2kyVDFJc0FFRURlQzhmQmsxd1FqcFVnNmQvVGFjVjMvbG1yVEdLa2ZpMHlY?= =?utf-8?B?SXYrbXdseHJkNitIVkpJWXVTV3Q5WXlmNmwzbmZhc0hIQVhpSzJYb3kxamVt?= =?utf-8?B?NlVhSnYxK05LZTFLVHhvSGdjRFFGZXdjMFdZQkxmbHlrS1VNNGZ4Y3FDQW1M?= =?utf-8?B?ekFUWU9LMUtBMUN4LzBsV1Njc3V0cUVwb3JJUy8vblI3cUdwTythcWtKNUJw?= =?utf-8?B?cmlJdzQ3WTU4RkJDY1M4V09hVlJwd3Q2MDQwbUh6T0VPZi83NEVBcXBSUURS?= =?utf-8?B?U1VuTUlOQ3J1VzdYZTlNWFpKYWtZNEtMSXNUcFlXTE16T1dLeGdlS0VJT1FL?= =?utf-8?B?UHNXaC96a1F2TG5iZ3d5OGtxRjR6ZG9sSjFxV1kxaGVBUDlOKzJzK0VjVkhy?= =?utf-8?B?c1gyUVVqWTBQK2NnWmsyOXZTcm83dDlhUDgwaE1ONmRyTHFuK2JGQ3ljbmdD?= =?utf-8?B?VE5BeFIxaHUyZDJTbnJlSWluVTNKejkvSW5CY2oxdzVlU2FQV0k2YzYrMU1Z?= =?utf-8?B?V25sRkdIK2t4SlByaHhCOHlVc21oUmY1Q1BpU1puQndDbFg4UksvRld1RHZw?= =?utf-8?B?WDBaNjZ6clFZMGRZNzlwc0ZWUzNNaEJuTTM1cnM0UlRqaXd5QmdZYXVtTFZX?= =?utf-8?B?cC9QazVXaHg5bE1UbWFJRklGRWlJcEFYaXlSdWxKVFQ0REllL3dnRFhXblZ3?= =?utf-8?B?SE5EaFdROFl0VUFEdTJzN3pqZzlNbzB6NUJQdVdqWTJ3VGN1bmNhbjMxSjBn?= =?utf-8?B?NDFjWHFhUkd1aHZ5RkJRYTNWbVBUSzNGL3UvR0tMcGthZFJodXJnR1FMNlZh?= =?utf-8?B?eklXeHRwaVR0dHBBVGpmdVJqa2RIdDJ5b05LZGJVcDY2NlllUnBXMm5hcUdW?= =?utf-8?B?bmFlSHpKd2xuQ28ySENjMkpzSFlkYXVNbnNWVjNzQldwckREdXlLNXZWd2Nx?= =?utf-8?B?MmYyalZvZGl6b0lMOFdaT3ZJRTFBbkNjdzZxcmZHcG9PT2M1YmE4bEdCUmpH?= =?utf-8?B?VWN3RVpSeXZQZXFhQnh5bmJIemNHVEtaSUZuSDQrZjlpYWpSRXpCdHNpS1o0?= =?utf-8?B?NHBJMy90dFJUaFlKZVBoMXVKMVJ4Z3RxWEhvcy9uUEFoWk5rbE5nRU9DWmoy?= =?utf-8?B?OC9hWVhHeXljN0VJSGZMamc5cUxHVDlhUmNMYTIwRHZVbUtZQ3NXd2Z5YWJ1?= =?utf-8?Q?4x2mEEW+HnpqF?= X-OriginatorOrg: siemens.com X-MS-Exchange-CrossTenant-Network-Message-Id: 747e27f3-e4cd-4bd2-aca9-08d8cf834537 X-MS-Exchange-CrossTenant-AuthSource: AM0PR10MB2708.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Feb 2021 18:23:18.5365 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 38ae3bcd-9579-4fd4-adda-b42e1495d55a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mTYwlDDgBPasjtjBAEprTMmSpysL/PnWJNZ78fPkhMWewQLscGtKc6HW9XpZU5GM4UoXZKjOYQ2N7JF9CZjBm/EyGO0xdjvenNIajJH4Io/NODZbS0Kn/7PLv5jmRfYk X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR10MB2500 X-TUID: Z2Ovg9CIq9Ux On 12/02/2021 19:06, Jan Kiszka wrote: > On 12.02.21 18:46, Silvano Cirujano Cuesta wrote: >> On 12/02/2021 18:10, Jan Kiszka wrote: >>> On 12.02.21 09:51, [ext] Silvano Cirujano Cuesta wrote: >>>> Add support for creation of container images with the build root >>>> filesystems. >>>> >>>> Extend also task "populate_sdk" to support the creation of a container image >>>> containing the SDK. >>> Should be done in to steps: container-img.bbclass frirst, and then a >>> patch to use it for the SDK as well. >> Ok. There are some many different tastes WRT to big vs small commits :-) > Rather /wrt logically separatable steps. > >>>> Signed-off-by: Silvano Cirujano Cuesta >>>> --- >>>> meta/classes/container-img.bbclass | 88 ++++++++++++++++++++++++ >>>> meta/classes/image-sdk-extension.bbclass | 51 ++++++++++++-- >>>> meta/classes/image.bbclass | 1 + >>>> 3 files changed, 133 insertions(+), 7 deletions(-) >>>> 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..35c7bbc >>>> --- /dev/null >>>> +++ b/meta/classes/container-img.bbclass >>>> @@ -0,0 +1,88 @@ >>>> +# This software is a part of ISAR. >>>> +# Copyright (C) Siemens AG, 2021 >>>> +# >>>> +# SPDX-License-Identifier: MIT >>>> +# >>>> +# This class provides the tasks 'containerize_rootfs' and 'containerize_sdk' >>> Nope, it now only provides the former. >> Yes, you're right, will fix it. >>>> +# to create container images containing the target rootfs and the SDK >>>> +# respectively. >>>> + >>>> +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") >>>> + skopeo --insecure-policy copy \ >>>> + "oci:${oci_img_dir}:${full_tag}" \ >>>> + "${image_type}:${image_name}:latest" >>>> + ;; >>> Missing check for "Am I in a container?", like in the SDK. Maybe move >>> that test here and share. >> Not needed, since the usage of IMAGE_TYPE is fixing already to container type. >> >> In the case of the SDK the same task is provides the non-containerized format tar-xz. >> > I cannot follow: What is the difference between > CONTAINER_FORMATS="docker-daemon" and SDK_FORMATS="docker-daemon" when > running inside a kas build container? Both do not work, do they? I misunderstood what you meant. But I got it now, and that's what I meant with the messed up case section. In the next version the "Am I a container?" is in the function, no need to do it twice. >>>> + *) >>>> + die "Unsupported format for containerize_rootfs: ${image_type}" >>>> + ;; >>>> + esac >>>> + done >>>> +} >>>> + >>>> +do_container_image[stamp-extra-info] = "${DISTRO}-${MACHINE}" >>>> +do_container_image[vardeps] += "CONTAINER_FORMATS" >>>> +do_container_image(){ >>>> + rootfs_id="${DISTRO}-${DISTRO_ARCH}" >>>> + >>>> + bbnote "Generate container image in these formats: ${CONTAINER_FORMATS}" >>> Probabably more "bbdebug"? Unsure. But we aren't using bbnote in the >>> core so far. Nor bbdebug, though. >> At least bbdebug is IMO needed for debbuging if goes wrong. >> >> BTW I'm using bbdebug a lot in the containerize_rootfs section because I've missed those kind of traces much too often when trying to debug some issues on ISAR recipes. >> >> Perhaps we should have more debug verbosity in the logs to ease debugging... >> >>>> + containerize_rootfs "${IMAGE_ROOTFS}" "${rootfs_id}" "${CONTAINER_FORMATS}" >>>> +} >>>> + >>>> +addtask container_image before do_image after do_image_tools >>>> diff --git a/meta/classes/image-sdk-extension.bbclass b/meta/classes/image-sdk-extension.bbclass >>>> index a8c708a..63138da 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 >>>> + bbnote "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,35 @@ 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") >>>> + if [ -z "${sdk_container_formats}" ] ; then >>> Unneeded, just use the else part unconditionally. >> The else part alone adds a heading whitespace. It's being ignored in containerize_rootfs, but it's still messing up some outputs. >> >> Not really useless, but not important (in fact that was my 1st version). I can change it in the next patch series version that I need anyway. >> > Looks like cosmetics, not functional issues. > > But if you dislike the leading whitespaces in the debug logs, make it > trailing (prepend rather than append). > >>>> + sdk_container_formats="${sdk_format}" >>>> + else >>>> + sdk_container_formats="${sdk_container_formats} ${sdk_format}" >>>> + fi >>>> + ;; >>>> + "docker-daemon" | "containers-storage") >>>> + if [ -f /.dockerenv ] || [ -f /run/.containerenv ] ; then >>>> + die "Adding the SDK container image to a container runtime (${sdk_format}) not supported if running from a container (e.g. 'kas-container')" >>>> + fi >>> See above, should likely go into containerize_rootfs(). >> Right, will fix it. >> >> In fact this case section is really messed up, I have to clean it up completely. >> > OK, seems we are again on the same page. > >>>> + ;; >>>> + *) >>>> + 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 >>>> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass >>>> index eddc444..7fb7b7e 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 container-img >>>> >>>> # Extra space for rootfs in MB >>>> ROOTFS_EXTRA ?= "64" >>>> >>> Jan >> Silvano >> > Jan Silvano -- Siemens AG, T RDA IOT SES-DE Corporate Competence Center Embedded Linux