The following reference to a derived container:
obsrepositories:/container#latest
Will be translated into the following buildservice
local path:
/usr/src/packages/SOURCES/containers/_obsrepositories/container#latest
The following reference to a derived container:
obs:/project/repo/container#tag
Will be translated into the following buildservice
local path:
/usr/src/packages/SOURCES/containers/project/repo/container#tag
This commit adds support for OCI images. Most of the docker related
code is reused for OCI classes and Docker classes have been refactored
so now they are a splecialization of the OCI classes. It is done this
way since KIWI internally only uses OCI format to operate with
containers, therefore docker images just differ from OCI images by
the way they are packaged or unpackaged.
There are no good reasons to be purging the repo directories, especially
when it is common for some distributions (Red Hat/CentOS/Fedora, for example)
to ship repository configuration as packages. Deleting them puts the package
manager in the system into a weird state, so we want to avoid this.
With this commit package manager are always set to include only
required packages or set to include required and recommended
packages.
This commit fixes#285
This commits bypasses any URI check if the uri schema is unknown in
RootImport class. This way the URI is bypassed to skopeo if it couldn't
be translated to any known type. That enables referencing images with
any URI supported by skopeo, i.e. DockerHub images.
Kiwi always uses OCI format for container manipulations, so it is
easier to assume the image kept between prepare and create step
is also in OCI format, this way less format convertions are needed.
Allow network interface names to be filtered by the given
regular expression. The expression is handled by the bash
regexp operator. Interface names matching the rule will be
filtered out, all others stay. It is also possible to pass
the variable kiwi_oemnicfilter as kernel command line in a
PXE deployment. Fixes#245
First, commit refactors RootImport in order to also copy
the imported image after sychronizing the import.
Second, it includes a checksum of the copied image which is
validated in later steps.
This commit includes the root import feature. A `derived_from`
attribute has been included with the <type> section to make
reference to the image file to import. The image format to import
is assumed to be the same as the build type to import.
The current format supported is docker
The package and solver repository classes did not provide an
interface to deal with repository credentials. This commit
add support for the zypper package manager and the generic
urlopen based download method of the solver class. This
Fixes#246
The obs uri 'obs://openSUSE:Factory/standard' does not follow
the standard http url translation schema and needed a special
handling in order to resolve correctly
Zypper supports the al (add lock) command which allows to ignore
a package in the dependecny resolution process. This is useful
to prevent installation of a package which was pulled in by e.g
a recommendation flag from the spec file. Packages marked to be
ignored are not handled for apt and yum right now. Using this
feature together with an unsupported package manager backend
results in a warning to the user
The Kernel instance is the only correct place to ask
for the kernel name. This class has the responsibility
to know information about the selected kernel. The
additional arch based assumption on the kernel name
in the disk builder were wrong. This fixes bnc#1011936
Complete the list of kernel names for the lookup. Normally
the kernel package provides a symlink to the actual kernel
image file. However if the link does not exist we extend the
search to a collection of names for possible kernel images.
The new list now also covers kernel names as used for arm
Along with the change this patch also provides an option to
raise an exception if the kernel lookup did not find any
kernel, which is used for the get_kernel() request in the
dracut initrd system setup where it is mandatory to find
a kernel image.
This fixes bnc#1010874
When no size is specified in type section the resulting image size
is calculated using the size of the whole build-root increased by
an empiric factor. Some tests revealed that this factor was not
enough for XFS filesystems. The empiric factor has been increased.
This commit fixes#186
Creating a new root init with a shared location which already
provides directories of the system failed on init of those
directories. Only create the not yet existing directories
Instead of creating the fstab at boot time, those entries which
are generic and not depending on an unknown device name can be
created as part of the image building process.
In zypper zypp.conf can be setup to prevent the installation
of %doc marked items from rpm packages. The <rpm-excludedocs>
section in the kiwi XML description is used to provide this
functionality. So far this feature is only implemented for
zypper. References #133
The changes here modify the method get_users in xml_state in order
to provide a simple list of users instead of nested lists. Also a new
method to get the groups for a given user has been included in
xml_state. This is done in order to slim down and facilitate the
code in kiwi/system/setup.py. This way users and groups can be handled
in more natural way.
Now each user item may or may not have a groups attribute. The
groups attribute is a comma separated list of group names. If
present the first group name will be the login or primary group,
if not present, the underlying toolchain will assign the default
login group for that user.
The latest version of generateDS handles <section>true|false</section>
text values in a way that it returns a boolean python type instead
of the text string. With this change the kiwi code has to be adapted
at the level of writing the shell profile which needs the string
value of boolean information