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

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