Replace OBS with another build system

Registered by Roman Vyalov

We faced a number of challenges with OBS during last year.
- OBS builds packages in its own way which is different from upstream.
It causes an issues when upstream package can't be rebuilt without
changing packages sources.
- OBS rebuilds package when its build dependency changed (and doesn't
update revision number of such package)
- OBS uses base upstream packages for target in the building stage.
Every change in the target causes rebuilding of each package which
was built with this target.
- OBS doesn't support publishing udeb binary packages. This is due to
the fact that it uses plain debian repository structure. But deb and
udeb packages should not be published in one repository.
- Our current OBS version (2.4) doesn't support debian python:any
dependencies. That's why we decided to create new OBS (2.6) instance.
We can't update current version because it totally breaks supporting
previously shipped releases.
- OBS doesn't support signing with predefined key. Only OBS
auto generated keys can be used. Every OBS project has it's own key.
Such keys can't be exported from OBS.
- It's quite hard to reproduce our CI due to OBS. Every MOS OBS
project based on previously shipped project. (e.g. 6.1 and 6.0.1 based
on 6.0 release, 6.0 based on 5.1 and so on). So if you need to
reproduce our CI for 6.1 release, you need to rebuild all packages for
all shipped releases since 3.2.

Blueprint information

Status:
Complete
Approver:
Roman Vyalov
Priority:
High
Drafter:
Roman Vyalov
Direction:
Approved
Assignee:
Dmitry Burmistrov
Definition:
Approved
Series goal:
Accepted for 7.0.x
Implementation:
Implemented
Milestone target:
milestone icon 7.0
Started by
Roman Vyalov
Completed by
Roman Vyalov

Related branches

Sprints

Whiteboard

Implementation currently track in:
https://review.fuel-infra.org/#/admin/projects/infra/obs (branch feature/new-build-system)
Jenkins jobs:
https://review.fuel-infra.org/#/c/6847/

Related design document: https://docs.google.com/a/mirantis.com/document/d/1PyfVYpqUZyvl5m8fQYgCtxTQCJREeVo2rjuGzI4Ow0E/edit#

Gerrit topic: https://review.openstack.org/#q,topic:bp/replace-obs,n,z

Addressed by: https://review.openstack.org/180524
    Blueprint: replace-obs

Addressed by: https://review.openstack.org/194092
    Move repository from OBS to Perestroika based packages

Addressed by: https://review.openstack.org/191794
    Add Perestroika DEB repository as packages source

Addressed by: https://review.openstack.org/200928
    Adjust deb sandbox repos with perestroika repo structure

Addressed by: https://review.openstack.org/214599
    [RN 7.0] [New Features] MOS Packages signature

Addressed by: https://review.openstack.org/218179
    [fuel-web] Perestroika buils system description

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.