Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
documentation.suse.com / Keg Reference Guide / Keg OBS source service

8 Keg OBS source service

The OBS Source Service for keg provides a mechanism to produce kiwi image descriptions for use with the Open Build Service in an automated fashion. The OBS Source Service, named compose_kiwi_description, checks out any given keg-recipes repositories, runs keg to produce the specified image description, and optionally produces change log files and stores the HEAD commit hashed of the keg-recipes repositories to be used for the next source service run.

To set up an OBS package as a keg source service package, simply create a file named _service in your package directory. The contents of the file should look like the following:

<services>
    <service name="compose_kiwi_description">
        <param name="git-recipes">https://github.com/SUSE-Enceladus/keg-recipes.git</param>
        <param name="git-branch">released</param>
        <param name="image-source">cross-cloud/sles/byos/15-sp3</param>
    </service>
</services>

In this example, the released branch of the public keg-recipes repository for SUSE Linux Enterprise images hosted on github is used as source and the selected image source is cross-cloud/sles/byos/15-sp3. Running the source service will produce a description for a SUSE Linux Enterprise Server 15 SP3 BYOS image for several cloud service provider frameworks.

The parameters <git-recipes> and <git-branch> may be used multiple times if the image description should be composed from more than one repository.

There are a few additional optional parameters:

  • arch (string)

Set build target architecture. Can be used multiple times.

  • image-version (string)

Set image version. If no version is given, the version number of the existing image description will be used with the patch level increased by one.

  • version-bump (true|false)

Whether the patch version number should be incremented. Ignored if --image-version is set. If set to false and --image-version is not set, the image version defined in the recipes will be used. If no image version is defined, image description generation will fail. Default is true.

  • update-changelogs (true|false)

Whether changes.yaml files should be updated. Default is true.

  • update-revisions (true|false)

Whether _keg_revisions (used for storing current commit IDs) should be updated. Default is true.

  • force (true|false)

If true, refresh image description even if there are no new commits. Default is false.

The system the source service is run on needs to have keg and obs-service-keg installed. Refer to the Using Source Services section of the OBS manual about details on how to run the source service and which operating modes are available.