Commit Graph

989 Commits

Author SHA1 Message Date
Marcus Schäfer
df0f9f2633
Bump version: 9.24.41 → 9.24.42 2022-06-13 14:56:55 +02:00
Marcus Schäfer
30eb1c1a5b
Correct setfiles relabeling
This change was inspired by a change done on Fedora's livecd-tools
from here: livecd-tools/livecd-tools#236. The patch corrects issues
with the setfiles SELinux relabel command. The issues become apparent
when the host and guest policies differ. Thus it becomes required
to explicitly set the policy to decouple from eventual unwanted
host settings.
2022-06-13 13:18:51 +02:00
Marcus Schäfer
28f79e509f
Bump version: 9.24.40 → 9.24.41 2022-06-09 10:29:53 +02:00
Marcus Schäfer
a52117eb63
Fixed handling of signing_keys in cmdline options
When passing signing_keys with the --add-repo|--set-repo
commandline options the delimiter to separate the single
key information is a colon(:). However, this is stupid when
kiwi expects the signing key to be references as an URI
format like file://... Therefore this patch changes the
delimiter from colon(:) to semicolon(;)
2022-06-08 18:29:42 +02:00
Marcus Schäfer
698398cca0
Bump version: 9.24.39 → 9.24.40 2022-06-01 11:31:29 +02:00
Marcus Schäfer
15fb3237b3
Bump version: 9.24.38 → 9.24.39 2022-05-29 20:33:16 +02:00
Marcus Schäfer
9abfe7f507
Move to sphinx>=5.0.0 2022-05-29 20:31:42 +02:00
Marcus Schäfer
2f1bd97dfe
Bump version: 9.24.37 → 9.24.38 2022-05-29 20:17:55 +02:00
Marcus Schäfer
a869428ffb
Fixed sphinx extlinks rendering
In Sphinx v5 warning will be treated as errors. This results in the following
warning to be an error: extlinks: Sphinx-6.0 will require a caption string to
contain exactly one '%s' and all other '%' need to be escaped as '%%'.
This commit applies the required quoting
2022-05-29 20:16:20 +02:00
Marcus Schäfer
29d1cbc976
Bump version: 9.24.36 → 9.24.37 2022-05-29 20:06:52 +02:00
Marcus Schäfer
5a46db4be2
Added example aarch64 integration test for Ubuntu
Created a RaspberryPI image description for Ubuntu(jammy)
as integration test for building aarch64 images and added
it to the integration test matrix
2022-05-29 20:00:43 +02:00
Marcus Schäfer
6144ade736
update docs 2022-05-20 22:09:33 +02:00
Marcus Schäfer
04d966b920
Add support for group id in users setting
Allow to specify the group id in the groups list a user
should belong to. The group id can be placed as part of
the group name separated by a colon like in the following
example:

<users>
    <user groups="kiwi,admin:42,users" password="..." name="kiwi"/>
</users>

Please note kiwi checks if the provided group already
exists and only creates a group if it is not already present in
the system. As default groups are usually provided by the OS
itself including its preferred group id, you will intentionally
not be able to overwrite group id for existing groups.
This Fixes #2064
2022-05-20 19:23:22 +02:00
Marcus Schäfer
b43fa3fd28
Bump version: 9.24.35 → 9.24.36 2022-05-19 15:21:54 +02:00
Marcus Schäfer
4f47b1d94b
Add support for prebuilt bootstrap package for apt
When using the apt packagemanager kiwi required the use of
debootstrap to create the initial rootfs. This works as long
as there is always a main distribution repository available
which follows the structure of the official debian mirrors.
However if such a main distribution is not present or an
alternative layout like e.g OBS repos is used, debootstrap
will refuse to work. To allow for an alternative and without
the dependency to debootstrap kiwi supports using a prebuilt
bootstrap package providing the mini rootfs to serve as
the bootstrap result. As all other package managers properly
supports installation into an empty new root, this feature
was only added when using the apt packagemanager
2022-05-18 11:19:51 +02:00
Marcus Schäfer
68ffba1444
Bump version: 9.24.34 → 9.24.35 2022-05-08 20:51:36 +02:00
Marcus Schäfer
041a4cc7df
Merge pull request #2131 from OSInside/support_part_clones
Add support for partition cloning
2022-05-08 20:51:13 +02:00
Marcus Schäfer
6c2b2916ee
Allow more repo params to be set on the cmdline
The repository parameters for signing keys, the component
list the main distribution name for debian repositories and
also the repository_gpgcheck could not be set via the
commandline options --add-repo and/or --set-repo. This
commit adds support for them and also updates the manual
page accordingly
2022-05-08 09:51:20 +02:00
Marcus Schäfer
bcf2a5d77a
Bump version: 9.24.33 → 9.24.34 2022-05-07 08:58:42 +02:00
Marcus Schäfer
5334fdd206
Bump version: 9.24.32 → 9.24.33 2022-05-05 17:05:56 +02:00
Marcus Schäfer
61e4f05f1b
Add support for partition cloning
Support creating block level clones of certain partitions
used in the image. Clones can be created from the root, boot
and any partition listed in the <partitions> element.
2022-05-05 17:00:36 +02:00
Marcus Schäfer
e7e8c3bf42
Add support for dm integrity with secret key
Allow to protect the opening of the integrity data map and
journal through a keyfile. For setting the key file two new
optional type attributes were added:

* integrity_keyfile
* integrity_metadata_key_description

The key file format must be correct according to the selected
integrity algorithm. As of now the kiwi default hmac-sha256
algorithm is used with the selected keyfile

The optional integrity_metadata_key_description attribute
allows to specify a custom description of an integrity key
as it is expected to be present in the kernel keyring. The
information is placed in the integrity metadata block. If
not specified kiwi creates a key argument string instead
which is based on the given integrity_keyfile filename.
The format of this key argument is:

:BASENAME_OF_integrity_keyfile_WITHOUT_FILE_EXTENSION
2022-05-04 16:04:37 +02:00
ozboss
18dbe55725
Add option to set LUKS type to luks1 (#2126)
Add option to set LUKS type to luks1

So far the LUKS type could be set to luks and luks2. However, what luks
version the value 'luks' evaluates to depends on how the distributor has
packaged luks. Thus it's possible that 'luks' is either luks1 or luks2. To
also have the opportunity to explicitly specify luks1 this commit adds
the opportunity in the schema.
2022-05-04 15:28:57 +02:00
Dan Čermák
2796582c69
Correct the URL to the dracut home page
This fixes https://github.com/OSInside/kiwi/issues/2097
2022-04-26 09:32:43 +02:00
Marcus Schäfer
655578a424
Bump version: 9.24.31 → 9.24.32 2022-04-25 17:15:06 +02:00
Marcus Schäfer
d5e7e546ca
Add support for standalone dm integrity
There is support in kiwi to use dm_integrity in combination
with the LUKS header and dm_crypt. However there is also the
use case to setup dm_integrity in standalone mode. This commit
allows to create the dm_integrity layer outside of LUKS using
/etc/integritytab to activate the map through a systemd
generator if systemd is used.

Regarding systemd it's required to use a version of system which
provides: system-generators/systemd-integritysetup-generator.
If this generator does not exist in the distribution it will
also be missing in the dracut generated initrd and the boot
will not be able to succeed. It's mentioned here because even
newer distributions might be missing the generator

Along with the implementation there are two new optional
attributes in the <type> section:

    standalone_integrity="true|false"
    embed_integrity_metadata="true|false"

standalone_integrity activates/deactivates the dm_integrity map
on top of the root filesystem. Similar to the veritysetup support
there is the opportunity to create an embedded magic metadata
block at the end of the device containing the root
filesystem via embed_integrity_metadata
2022-04-25 15:40:32 +02:00
Marcus Schäfer
72d224dcab
Bump version: 9.24.30 → 9.24.31 2022-04-06 16:39:44 +02:00
Marcus Schäfer
009c88a48b
Added new CloneDevice class
Added CloneDevice class to the storage interface.
The class allows to create clone(s) from a given source
block device into a list of target block devices.
The target block devices are clones of the source but
prevents device naming conflicts for unique identifiers
like the UUID. This is requires to still allow to boot
from images containing device clones and needs to be
handled by tools that might work on top of the cloned
devices.
2022-04-05 17:43:41 +02:00
Tim Serong
5c6e8e0523 Add ensure_empty_tmpdirs option for OCI containers (bsc#1197783)
Since #1759 was merged, the contents of /run/ and /tmp/ are excluded from
built images.  This causes problems for some containers, notably Ceph when
deployed in a Rook/k8s environment, which needs to have certain directories
present inside /run/.  This commit adds the ability to return to the previous
behaviour and *not* empty those temporary directories, if you specify
<image><preferences><type [...] ensure_empty_tmpdirs="false">.

Fixes: https://github.com/OSInside/kiwi/issues/2093
Signed-off-by: Tim Serong <tserong@suse.com>
2022-03-31 15:43:40 +11:00
Marcus Schäfer
8f76843b39
Bump version: 9.24.29 → 9.24.30 2022-03-29 09:40:19 +02:00
Marcus Schäfer
82f0950620
Added embed_verity_metadata attribute
Specifies to write a binary block at the end of the
partition serving the root filesystem, containing information
for dm_verity verification and to construct the device map
2022-03-25 12:07:23 +01:00
Marcus Schäfer
c30ac9f1fb
Handle LUKS type in its own attribute 2022-03-21 23:28:22 +01:00
Marcus Schäfer
74ad1e5744
Allow luks format options
Added new luksformat element which allows to pass
along options to the luksFormat call. This allows users to
switch between LUKS and LUKS2 via e.g

    <luksformat>
        <option name="--type" value="luks2"/>
    </luksformat>

It also allows to pass along a set of options only available
to LUKS2, e.g

    <luksformat>
        <option name="--type" value="luks2"/>
        <option name="--cipher" value="aes-gcm-random"/>
        <option name="--integrity" value="aead"/>
    </luksformat>

In addition to the new attribute the existing luks attribute
can also be specified to read credentials from a keyfile by
using the file:// source locator, e.g

    <type ... luks="file:///path/to/a/keyfile"/>

This Fixes #1898
2022-03-21 21:40:35 +01:00
Marcus Schäfer
bd91dabfcc
Add support for verity setup on standard rootfs
So far the verity support was only available with the
overlayroot layout and the read-only squashfs root. This
commit adds a new attribute: verity_blocks="number|all"
which allows to create the verity setup also on the
standard root partition

In addition to the change it was needed to extend the
Filesystem API with an additional optional paramter to
allow setup of the filesystem UUID. Having the opportunity
to set the UUID at filesystem creation is generally useful
and with regards to this particular change it became also
required
2022-03-21 20:37:18 +01:00
6ea306256d Allow Btrfs and XFS as options for the boot partition filesystem
We already do this implicitly when we do not define this attribute
and request a boot partition, so let us explicitly offer these as
options too.
2022-03-18 07:10:39 -04:00
Marcus Schäfer
578d4cfe17
Merge pull request #2086 from OSInside/move_scope_of_veritysetup
Move scope of veritysetup
2022-03-14 20:36:23 +01:00
Marcus Schäfer
3f0a1f289b
Bump version: 9.24.28 → 9.24.29 2022-03-10 23:19:33 +01:00
Marcus Schäfer
fe265a6a81
Move scope of veritysetup
veritysetup was called as part of the disk builder. However,
the veritysetup should be a responsibility of the classes which
implements the sync_data method. This allows to use the creation
of a verity hash format right after sync as a feature to these
classes and in a broader scope. In addition to that change the
VeritySetup::format method now returns the metadata from the
format call and stores it as debug information to the log file.
A concept to persistently store the verification metadata as part
of the partition(s) will be a next step.
2022-03-10 09:19:08 +01:00
Marcus Schäfer
a0cc1989c6
Merge pull request #2081 from OSInside/support_extended_partitions
Support extended partitions
2022-03-09 20:53:37 +01:00
Dan Čermák
0e30214c23
Style changes in container docs
Reformulate the container building guide a bit
2022-03-09 18:14:29 +01:00
Marcus Schäfer
2da706f5ed
Add support for extended layout to msdos table
This commit adds the following new type attribute

    <type ... dosparttable_extended_layout="true|false"/>

If set it specifies to make use of logical partitions inside
of an extended one. Effective only on type configurations which
uses the msdos table type, it will cause the fourth partition
to be an extended partition and all following partitions will be
placed as logical partitions inside of that extended partition.
This setting is useful if more than 4 partitions needs to be
created in an msdos table.

In addition to the support for extended/logical partitions the
the attributes 'mountpoint' and 'filesystem' in the <partitions>
section becomes optional. This also allows to place partitions
as placeholders not mounted into the system
2022-03-05 21:25:56 +01:00
Marcus Schäfer
7d460a6edc
Bump version: 9.24.27 → 9.24.28 2022-03-04 14:28:49 +01:00
Marcus Schäfer
4ce7842e99
Added overlayroot_verity_blocks attribute
Setting this attribute to a number or 'all' in an overlayroot
configuration will create a dm verity hash from the number of
given blocks (or all) placed at the end of the squashfs compressed
read-only root filesystem. For later verification of the device,
and without further image description settings, the credentials
information produced by veritysetup from the cryptsetup tools, is
created as a file in /boot/overlayroot.verity and is stored as
such into the image by default.
2022-03-03 21:58:14 +01:00
Marcus Schäfer
5c08148e9f
Bump version: 9.24.26 → 9.24.27 2022-03-02 16:41:11 +01:00
Marcus Schäfer
d2a968a2e1
Fixed disk.sh caller environment
The documentation explains the disk.sh script to be called
from inside of the image root as it exists on the block layer.
The disk.sh script is therefore also called after the sync
of the unpacked image root tree to the block layer. The
implementation however, was only partially calling disk.sh
from such an environment. In fact the environment was only
the mountpoint of the root partition but this is not the
complete system regarding layouts that uses extra partitions
and/or volumes. This commit introduces the use of the new
class ImageSystem and calls disk.sh in the way it was
designed and documented.
2022-03-01 10:00:48 +01:00
Marcus Schäfer
aa3997d008
Merge pull request #2074 from OSInside/allow_custom_size_for_readonly_root
Added overlayroot_readonly_partsize attribute
2022-02-27 16:20:13 +01:00
Marcus Schäfer
cbf0d46a1c
Bump version: 9.24.25 → 9.24.26 2022-02-26 21:24:12 +01:00
Marcus Schäfer
914f8611ce
Bump version: 9.24.24 → 9.24.25 2022-02-26 20:46:36 +01:00
Marcus Schäfer
6e3ac0e2ea
Added overlayroot_readonly_partsize attribute
Specifies the size in MB of the partition which stores the
squashfs compressed read-only root filesystem in an
overlayroot setup. This Fixes #2068
2022-02-25 17:32:47 +01:00
Marcus Schäfer
2ff210b305
Bump version: 9.24.23 → 9.24.24 2022-02-20 14:45:48 +01:00