Tuesday, June 6, 2017

Open Build Service Integration

You all know the amazing SUSE Studio and love how it abstracts the complicated process of appliance building.
However, it lacks several essential features like an integration into your continuous integration workflow or automatic rebuilds on updates.
If you have followed our recent blog posts then you may have noticed that we currently work on a better integration of appliance building in the Open Build Service.
This blog post will show you how you can export your appliance from SUSE Studio and import it into the Open Build Service to benefit from these features.

SUSE Studio


SUSE Studio is the award-winning online application to create custom linux appliances.
It helps you configure packages, users, database and much more.
A little known feature is that it allows you to export appliance configuration files.


To do this got to the Build tab, click Export your appliance's Kiwi configuration and then click Download appliance source.


The export contains the Kiwi description of your appliance.
Kiwi is the OS image appliance builder which powers SUSE Studio and Open Build Service in the background.
If you want to know more about it, have a look at the excellent KIWI documentation.
After extracting the archive, you can investigate the files.


The most interesting file is the source.kiwi.txz archive as it can be directly imported into your Open Build Service project.

Open Build Service


First go to your home project and add the Kiwi image builds repository.


After that, create a new package inside your home project.


After clicking on create you will end up with a package without source files.
Click on Add file and select source.kiwi.txz from your download directory to import your SUSE Studio configuration into OBS.


The import feature will extract the archive and does several adaptions like renaming files and ordering repositories.
If everything worked like expected, the appliance should start building after a few minutes.


Advantages & Limitations


Some of you might ask why should you use the Open Build Service instead of SUSE Studio?
As already mentioned in the beginning, OBS can be easily integrated in your continuous integration workflow.
You can setup a source service which automatically fetches your latest code from GitHub, builds an RPM package and eventually your custom Linux application.
The dependency resolution of OBS also makes sure that you get a new appliance as soon as one of the dependencies changed.
To complete the continuous integration workflow, it is possible to test the appliance with Open QA.

But OBS offers more!
SUSE Studio uses only a small subset of Kiwi, with the help of OBS you can make use of the full feature set.
Similiar to GitHub and SUSE Gallery, OBS gives you the ability to collaborate with other appliance maintainers.
Ever wanted to build appliances for your Raspberry Pie?
While SUSE Studio only offered building 64-bit appliances, with OBS you can now build many other architectures including ARM or s390.

We tried to make the import as smooth as possible for you, however, there are of course limitations.
If you have, for instance, custom repositories in your appliance, OBS will fail to resolve these and you will end up with a broken package.

r">

You can resolve this issue by editing the 'config.kiwi' file and adding the correct OBS repository with the schema obs://$PROJECT/$REPOSITORY


As OBS parses the configuration file before it starts the build, you can get have choice or similiar issues which you need to resolve manually.
This is for instance the case for imports of KDE configuratation files.


You need to decide on case to case which package is the correct one.
We can fix the KDE configuration by removing the package kdebase4-session from the config.kiwi file.

If you have questions or suggestions, send an email to our mailinglist, join us in IRC on #opensuse-buildservice @ freenode or open an issue.

No comments:

Post a Comment

 
© 2013 SUSE