Portal:Leap Micro/Maintenance
Maintenance setup of Leap Micro 6.X
Leap Micro is an openSUSE rebrand of SUSE Linux Enterprise Micro (SLE Micro); therefore, 99.9% of potential Leap Micro updates will be updated from SLE Micro.
Leap Micro has [releases twice a year and support over two releases. The product lifecycle is typically 12 months. Details in the roadmap [1]
Leap Micro 5.X used to have a dedicated repo-sle-update for all SLE Micro updates, however, Leap Micro 6.X receives all updates through the repo-main repository
Forked packages in Leap Micro, which are branding packages, and product-building specific packages are not typically subject to receiving maintenance updates unless we intend a change in building product images or e.g. toolbox container.
Any (build) dependencies of openSUSE-branding packages are typically aggregated from corresponding openSUSE Leap release (pre-release of Leap 16.0 in case of Leap Micro 6.X.).
Technical implementation
Leap Micro 6.1 uses OBS project openSUSE:Leap:Micro:6.1 respective openSUSE:Leap:Micro:6.1:ToTest for publishing. During the development, the Build validation before publishing is done via commenting on builds in openQA job group 102. The very same openQA group would be reused in case we would have to rebuild product images post-GA.
openSUSE Leap Micro 6.X project inherits binaries from SLE Micro. In case of 6.1 this would be specifically done by inheriting projects SUSE:SLFO:Products:SL-Micro:6.1, SUSE:SLFO:Kernel:1.0:Build, SUSE:SLFO:1.1:Build. These projects are not locked post GA as it used to be in the past. But instead they're kept alive.
Sync of SLE Micro Binaries
Sync of binaries for SUSE:* projects from IBS to OBS in the mentioned projects are enabled by the Autobuild team. Sync is disabled per a request at the EOL (end of life) of a given release. This is typically discussed in advance on Release Engineering meeting with the openSUSE:Maintenance_team.
Botmaser Pipeline
There is a pipeline that releases packages from product repository from openSUSE:Leap:Micro:6.X to openSUSE:Leap:Micro:6.X:ToTest daily.
osc -A https://api.opensuse.org release --target-project=openSUSE:Leap:Micro:6.1:ToTest --target-repository=product -r product openSUSE:Leap:Micro:6.1 000productcompose
The project openSUSE:Leap:Micro:6.X:ToTest then has a publish flag to ensure publish of released changes. This can be manually controlled in project metadata.
<publish> <disable/> <disable repository="images"/> <disable repository="containers"/> <disable repository="product"/> </publish>
Pipelines can be paused and activated as needed at https://botmaster.suse.de.
Pipelines to be disabled after GA
As of now we need to ensure that pkglistgen pipeline is disabled, as pkglistgen has currently issue with processing SLE Micro patchinfo, pipline for rebuilding release packages can be also paused, which leaves us basically only with the publish pipeline (daily release) enabled. This is done by the Release manager after final GM build is identified.
As mentioned already above the intention is to only republish rpm repositories post GA.
This is ensured by the following.
In order to not have to re-test install images post GA we disable build flag of the container (see opensuse-toolbox-image) and images (see package LeapMicro) repositories in project meta.
This is a step that has to be manually done by Release Manager or Release engineer after we have the final GM build.
The publish pipeline only releases the product repository, and the publish flag in :ToTest also enables publishing of only product repository.
During development the publish flag of :ToTest repository is under control of ToTest manager.
It is typically disabled and enabled only after the build was commented / waived ('@ttm ignore' comment) in openQA.
pipeline definition can be done heremetadata
Points of contact
Lubos.Kocman AT suse.com is generally responsible for Leap Micro setup. All users with administrative rights to the project can be seen in respective Leap:Micro:X.Y project under tab users.
Manual republish
The daily release pipeline during maintenance republishes only the product repository. This is on purpose as we want to avoid the need to re-test install images during maintenance.
The following can be done In case we need to republish all of the repositories including images and containers.
In such case, respective repositories need to have enabled publish in :ToTest project metadata.
<publish> <disable/> <enable repository="images"/> <enable repository="containers"/> <enable repository="product"/> </publish>
VERSION=6.1 osc -A https://api.opensuse.org release --target-project=openSUSE:Leap:Micro:$VERSION:ToTest --target-repository=product -r product openSUSE:Leap:Micro:$VERSION 000productcompose osc -A https://api.opensuse.org release --target-project=openSUSE:Leap:Micro:$VERSION:ToTest --target-repository=images -r images openSUSE:Leap:Micro:$VERSION Leap-Micro osc -A https://api.opensuse.org release --target-project=openSUSE:Leap:Micro:$VERSION:ToTest --target-repository=containers -r containers openSUSE:Leap:Micro:$VERSION opensuse-toolbox-image osc -A https://api.opensuse.org release --target-project=openSUSE:Containers:Leap-Micro:$VERSION --target-repository=containers -r containers openSUSE:Leap:Micro:$VERSION:ToTest opensuse-toolbox-image