From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6927266035414335488 X-Received: by 2002:a17:907:7683:: with SMTP id jv3mr22241948ejc.450.1615323761692; Tue, 09 Mar 2021 13:02:41 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:6402:1432:: with SMTP id c18ls104952edx.0.gmail; Tue, 09 Mar 2021 13:02:40 -0800 (PST) X-Google-Smtp-Source: ABdhPJzBHCLGaZi2LXzv4XgJqo8ooAmmboWjx53xfLu8R3pQW3TdVZ71riNA7+hiFbYSwyVY/lUQ X-Received: by 2002:aa7:d503:: with SMTP id y3mr6292705edq.142.1615323760853; Tue, 09 Mar 2021 13:02:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615323760; cv=none; d=google.com; s=arc-20160816; b=vbHRreYQoaxOWezKPbTA2yaqfwst0v3cuVmcWAbawJ8C6096cjDY/znljlzldq1bLT ZXEJbmBgCo/u6IZMXAu92xtjl9YZIuCMUJRx1NL8Mr8Z+8TtGGEE4jf05mUz2a2+QY1S FLbySWPYibIbdp1MVbtICnpBP4Q5lOxdj7JIhMaIy6UlyHOaclt8diD/8Lt75lf+JtWi nm7j3FPdBL0nSopL9a2OSzjvNdvWLfe2G06lM1s1G7qwFHnYuDixyFo7TDmzbxhyuMnz 0SPIVpgiLdVU9GjQDNm8AYJi9AyCP14DwwEPaVpJ7JKEnU92d28J8lJlfnxoTfG9WO2/ LMLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from; bh=cSVciD/fuI2rRbKhugX17SxinPjl3d2VJRnNoGQLz8s=; b=qPkq0Ht44yl0qw9G7hB0eOBfvQb1J+UgRbJDR655Aey7Ihfzcul6vTWPRdGkdU9eC6 13TJM3jqeeWrH+PMxy8KPMIJi6n0XT7aoe5Cu1vk/Zer+xazcZ4UgERCLlABmQS8NA5a Y3V79SBYcHJsctjxfcxgoBBKLgm99lbmG6j+Up+cfk9RGIwe2wlMNTj1gUL7Qu5Kx7WZ Jb9LyYAt7gbfIXLK10CshBbOJ+/t479QZfvB0xuyqVVlhKdh3T6PpGj0jgvchZtHv4DW rQQT6D3PEwFCjb2FpCGK6UzzmLNP5CmeXhpKsCVYPN1xXTH7QHDZnPVkWl9H5ZxuZ0Lr +z4A== 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 Return-Path: Received: from gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id w5si252317edv.1.2021.03.09.13.02.40 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 09 Mar 2021 13:02:40 -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; 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 Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id 129L2eAY020800 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 9 Mar 2021 22:02:40 +0100 Received: from md1sf36c.ad001.siemens.net ([139.22.35.216]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id 129Kqeb1031095 for ; Tue, 9 Mar 2021 21:52:40 +0100 From: Silvano Cirujano Cuesta To: isar-users@googlegroups.com Subject: [PATCH v6 0/5] Add support for containerized root filesystems Date: Tue, 9 Mar 2021 21:52:34 +0100 Message-Id: <20210309205239.652677-1-silvano.cirujano-cuesta@siemens.com> X-Mailer: git-send-email 2.30.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: 7OAmKv8nY/7g This patch series provides support for containerized root filesystems, for both target images and SDKs. For containerized target images the new image type `container-img` has been added. For containerized SDKs the task `populate_sdk` has been extended. Containerized root filesystems are easy to distribute and run, enabling this way following scenarios: - Use ISAR to build container images meant to be run only in containers. - Use the same ISAR configuration to build images for containers, VMs and bare-metal. - Easy SDK distribution and "installation". - Quickly testing certain applications in the workstation using the target root filesystem. In order to build containerized target root filesystems `IMAGE_TYPE` has to be `container-img`, additionally the container image format can be selected with the variable `CONTAINER_FORMATS`. The default format is `docker-archive`. In order to build containerized SDKs the variable `SDK_FORMAT` has to provide any of the supported container formats (e.g. `docker-archive`). The default format is the legacy non-containerized: `tar_xz`. It also provides a sample machine, multiconfigs and ci-testing. More information about its usage is documented in the file docs/user_manual.md. A PoC/demo of this functionality (only the SDK part) has been created based on the project https://github.com/siemens/meta-iot2050. Jan Kiszka already tested and liked it! => https://github.com/siemens/meta-iot2050/issues/86#issuecomment-768907845 Successful builds of both containerized target and SDK are available on the same PoC project: - https://github.com/Silvanoc/meta-iot2050/actions/runs/558311580 - https://github.com/Silvanoc/meta-iot2050/actions/runs/558311581 and also the resulting images: - https://github.com/users/Silvanoc/packages/container/package/meta-iot2050%2Fiot2050-debian-arm64 - https://github.com/users/Silvanoc/packages/container/package/meta-iot2050%2Fiot2050-debian-sdk-arm64 In order to get a feeling about its usage (you need Docker or Podman), follow these simple copy&paste instructions: https://github.com/Silvanoc/meta-iot2050/blob/master/kas/BUILDING-SDK-CONTAINER.md#running-the-sdk Build instructions are available in the upper part of that document. Two new dependencies (umoci and skopeo -backporting from bullseye to buster works easily) are required to create containerized root filesystems (as specified in the documentation). Typical container image management actions (e.g. push an image to a container image regitry) are out of scope. Available tools (Docker, Skopeo, Buildah, Podman,...) should be used for these actions. A patch will follow this one to get the dependencies into the container images being provided by the project https://github.com/siemens/kas (for `kas-container`, for example). Silvano Cirujano Cuesta (5): classes: add root filesystem containerizing class classes: add new image type 'container-img' sdk: add support for containerized sdk docs: document creation of container images ci: add container image testing configurations doc/user_manual.md | 127 ++++++++++++++++++ meta-isar/conf/machine/container.conf | 5 + .../conf/multiconfig/container-bullseye.conf | 4 + .../conf/multiconfig/container-buster.conf | 4 + .../conf/multiconfig/container-focal.conf | 4 + .../conf/multiconfig/container-stretch.conf | 4 + meta/classes/container-img.bbclass | 18 +++ .../classes/image-container-extension.bbclass | 81 +++++++++++ meta/classes/image-sdk-extension.bbclass | 42 +++++- meta/classes/image.bbclass | 1 + scripts/ci_build.sh | 11 +- 11 files changed, 293 insertions(+), 8 deletions(-) create mode 100644 meta-isar/conf/machine/container.conf create mode 100644 meta-isar/conf/multiconfig/container-bullseye.conf create mode 100644 meta-isar/conf/multiconfig/container-buster.conf create mode 100644 meta-isar/conf/multiconfig/container-focal.conf create mode 100644 meta-isar/conf/multiconfig/container-stretch.conf create mode 100644 meta/classes/container-img.bbclass create mode 100644 meta/classes/image-container-extension.bbclass -- 2.30.1