From: Silvano Cirujano Cuesta <silvano.cirujano-cuesta@siemens.com>
To: isar-users@googlegroups.com
Subject: [PATCH v8 0/5] Add support for containerized root filesystems
Date: Mon, 29 Mar 2021 17:56:35 +0200 [thread overview]
Message-ID: <20210329155640.62445-1-silvano.cirujano-cuesta@siemens.com> (raw)
v8: cosmetic changes in docs and small fix in CI script
v7: issues in sample configurations and CI script fixed and tested on
two different CI environments.
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 sample configurations
doc/user_manual.md | 179 ++++++++++++++++++
meta-isar/conf/local.conf.sample | 3 +
meta-isar/conf/machine/container.conf | 5 +
.../conf/multiconfig/container-bullseye.conf | 4 +
.../conf/multiconfig/container-buster.conf | 4 +
.../conf/multiconfig/container-stretch.conf | 4 +
meta/classes/container-img.bbclass | 18 ++
.../classes/image-container-extension.bbclass | 82 ++++++++
meta/classes/image-sdk-extension.bbclass | 42 +++-
meta/classes/image.bbclass | 1 +
scripts/ci_build.sh | 29 ++-
11 files changed, 363 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-stretch.conf
create mode 100644 meta/classes/container-img.bbclass
create mode 100644 meta/classes/image-container-extension.bbclass
--
2.30.2
next reply other threads:[~2021-03-29 15:56 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-29 15:56 Silvano Cirujano Cuesta [this message]
2021-03-29 15:56 ` [PATCH v8 1/5] classes: add root filesystem containerizing class Silvano Cirujano Cuesta
2021-04-08 17:55 ` Jan Kiszka
2021-04-12 7:14 ` Silvano Cirujano Cuesta
2021-04-12 8:20 ` Silvano Cirujano Cuesta
2021-08-19 20:43 ` Bezdeka, Florian
2021-08-20 6:54 ` Jan Kiszka
2021-08-31 12:56 ` Silvano Cirujano Cuesta
2021-03-29 15:56 ` [PATCH v8 2/5] classes: add new image type 'container-img' Silvano Cirujano Cuesta
2021-03-29 15:56 ` [PATCH v8 3/5] sdk: add support for containerized sdk Silvano Cirujano Cuesta
2021-03-29 15:56 ` [PATCH v8 4/5] docs: document creation of container images Silvano Cirujano Cuesta
2021-03-29 15:56 ` [PATCH v8 5/5] ci: add container image sample configurations Silvano Cirujano Cuesta
2021-04-02 15:18 ` [PATCH v8 0/5] Add support for containerized root filesystems Anton Mikanovich
2021-04-06 5:23 ` Silvano Cirujano Cuesta
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=20210329155640.62445-1-silvano.cirujano-cuesta@siemens.com \
--to=silvano.cirujano-cuesta@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