Deploy patches (minor fixes) for OpenStack

Registered by Mike Scherbakov

Design Document https://docs.google.com/a/mirantis.com/document/d/1EHDRXR1uKHh6ibpbUTbrRFnA-6JLj0nf7ULXcIv7mDI/edit

Presentation:
https://docs.google.com/a/mirantis.com/presentation/d/1pRWtAmTZSSBInh-314hm_Zijq06ugDZF8MwtMYose_I/edit#slide=id.p

Defense speech:
https://docs.google.com/a/mirantis.com/document/d/1liL4z4FeFjkL2i54bQOlEzDjCQIXPoscVy4is7r47Us/edit

Patches to OpenStack components should be deployable through a single action by an administrator after downloading the patch(es).

For Fuel, once the patch(es) have downloaded, the install should be launched from within Fuel itself. Information about the environment should be available without further user input, so few to no questions should be required for install.

The following requirements apply:
Downtime should be limited to restarting the service/executable with the new patched version.
An administrator must be able to identify that the products have been patched based on a new version (string). This version string should be visible through Fuel’s UI.
An ability to rollback the patch if a catastrophic event is caused by the patch is desirable.

Feature Lead: Dmitry Ilyin (Library Part)
Mandatory Design Reviewers: Dmitry Ilyin
Developers: Igor Kalnitskiy, Dmitry Ilyin, Ekaterina Pimenova
QA: Tatyana Leontovich

Blueprint information

Status:
Complete
Approver:
Vladimir Kuklin
Priority:
Essential
Drafter:
Dmitry Ilyin
Direction:
Approved
Assignee:
Dmitry Ilyin
Definition:
Approved
Series goal:
Accepted for 5.1.x
Implementation:
Implemented
Milestone target:
milestone icon 5.1
Started by
Vladimir Kuklin
Completed by
Dmitry Pyzhov

Related branches

Whiteboard

https://etherpad.openstack.org/p/fuel-openstack-patching

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

Addressed by: https://review.openstack.org/83356
    Null-override yum/apt providers and package type (puppet 3.4.2)
Also addressed by: https://review.openstack.org/84700

Addressed by: https://review.openstack.org/84092
    Ensure packages state change notifies related services

Addressed by: https://review.openstack.org/83789
    Add package providers and version lookup

Addressed by: https://review.openstack.org/85303
    Ensure 'latest' is replaced to 'present' for OS packages

Addressed by: https://review.openstack.org/88556
    Cobbler part of Openstack patching process

Addressed by: https://review.openstack.org/89850
    Cobbler part of Openstack patching process.

Gerrit topic: https://review.openstack.org/#q,topic:bug/1348130,n,z

Addressed by: https://review.openstack.org/109531
    Support custom package repositories for different fuel versions

Addressed by: https://review.openstack.org/111191
    Cobbler part of Openstack patching process.

(?)

Work Items

Work items:
Hacked overrided apt/yum providers with rollbacks for puppet: DONE
Wrapped overrided package type and specs for puppet: DONE
Ensure notifies Package<||>~>Service<||> in modules: DONE
Versions.yaml fixtures: INPROGRESS
Update repos management in manifests: DONE
Nailgun part of the Update process: DONE
CI deployment using fixtures: INPROGRESS

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.