Describe MOS RPM repositories interface

Change-Id: I4346f4a7956ada832da550e64bc1093045d1e417
This commit is contained in:
alexz 2015-07-22 16:27:49 +03:00
parent 9fbc3ede36
commit a1b09eaaa3

View File

@ -0,0 +1,186 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=================================================================
MOS RPM repositories: URLs, metadata, and other interface details
=================================================================
Improve the API (URLs and metadata) of MOS RPM repositories
Problem description
===================
Currently the codename is bound to the MOS release number, that is, the repo
URLs look like (as documented in separate_mos_from_linux_)
::
http://${mirror_host}/mos/centos-6/proposed
http://${mirror_host}/mos/centos-6/security
http://${mirror_host}/mos/centos-6/updates
This stucture yields several issues:
- it's impossible to distinguish between repositories targeted for different
Centos versions
- it's difficult to support per customer repositories
- it's impossible to distinguish between repositories targeted for fuel and
openstack
nodes
.. _separate_mos_from_linux: https://github.com/stackforge/fuel-specs/blob/master/specs/6.1/separate-mos-from-linux.rst
Proposed change
===============
Add change the codename mos${mos_release}-${distro_codename}, so the URLs are
::
http://${mirror_host}/mos-repos/${distro}/mos${mos_release}-${distro}${distro_version}/os/x86_64/
http://${mirror_host}/mos-repos/${distro}/mos${mos_release}-${distro}${distro_version}/updates/x86_64/
http://${mirror_host}/mos-repos/${distro}/mos${mos_release}-${distro}${distro_version}/security/x86_64/
http://${mirror_host}/mos-repos/${distro}/mos${mos_release}-${distro}${distro_version}/holdback/x86_64/
http://${mirror_host}/mos-repos/${distro}/mos${mos_release}-${distro}${distro_version}/cr/x86_64/
Example: MOS 7.0/centos6
--------------------------
::
http://${mirror_host}/mos-repos/centos/mos7.0-centos6/os/x86_64/
http://${mirror_host}/mos-repos/centos/mos7.0-centos6/updates/x86_64/
http://${mirror_host}/mos-repos/centos/mos7.0-centos6/security/x86_64/
http://${mirror_host}/mos-repos/centos/mos7.0-centos6/holdback/x86_64/
http://${mirror_host}/mos-repos/centos/mos7.0-centos6/cr/x86_64/
Example: MOS 7.0/centos6-fuel
-------------------------------
::
http://${mirror_host}/mos-repos/centos/mos7.0-centos6-fuel/os/x86_64/
http://${mirror_host}/mos-repos/centos/mos7.0-centos6-fuel/updates/x86_64/
http://${mirror_host}/mos-repos/centos/mos7.0-centos6-fuel/security/x86_64/
http://${mirror_host}/mos-repos/centos/mos7.0-centos6-fuel/holdback/x86_64/
http://${mirror_host}/mos-repos/centos/mos7.0-centos6-fuel/cr/x86_64/
Example: Customer 7.0/centos6
-------------------------------
::
http://${mirror_host}/customer/centos/mos7.0-centos6/os/x86_64/
http://${mirror_host}/customer/centos/mos7.0-centos6/updates/x86_64/
http://${mirror_host}/customer/centos/mos7.0-centos6/security/x86_64/
http://${mirror_host}/customer/centos/mos7.0-centos6/holdback/x86_64/
http://${mirror_host}/customer/centos/mos7.0-centos6/cr/x86_64/
Advantages:
- MOS release can target arbitrary number of Centos versions
(limited only by available resources).
- It's possible to create arbitrary number of per customer (or per team)
RPM repositories using codenames and custom url, but still keeping
the overall structure.
- It's possible to maintain a separate set of repositories which are
not intended for OpenStack nodes (say, packages relevant for Fuel master
node only).
Alternatives
------------
Data model impact
-----------------
Default set of RPM repositories for OpenStack and FUEL nodes should be changed.
REST API impact
---------------
None.
Upgrade impact
--------------
None.
Security impact
---------------
None.
Notifications impact
--------------------
None.
Other end user impact
---------------------
None.
Performance Impact
------------------
None.
Plugin impact
-------------
None.
Other deployer impact
---------------------
None.
Developer impact
----------------
None.
Infrastructure impact
---------------------
Implementation
==============
Assignee(s)
-----------
Work Items
----------
Dependencies
============
None.
Testing
=======
Acceptance criteria
-------------------
Documentation Impact
====================
* New RPM URLs and repo metadata should be documented so
people can create their repositories the right way.
References
==========