From bc4dbd855ebc3424a6793a0e3af30c41c7c33339 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Tue, 27 Mar 2018 12:56:42 +0100 Subject: [PATCH] specs: rocky: Add new openstack-distribution-packages specification Add new Rocky specification for installing OpenStack services using the distribution packages. Implements blueprint: openstack-distribution-packages Change-Id: Id5b991c6982609931a7befb1a2a3e74363a3024c --- .../rocky/openstack-distribution-packages.rst | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 specs/rocky/openstack-distribution-packages.rst diff --git a/specs/rocky/openstack-distribution-packages.rst b/specs/rocky/openstack-distribution-packages.rst new file mode 100644 index 0000000..25d6086 --- /dev/null +++ b/specs/rocky/openstack-distribution-packages.rst @@ -0,0 +1,133 @@ +Install OpenStack services from distribution packages +####################################################### +:date: 2018-03-27 00:00 +:tags: roles, deployment + +Blueprint on Launchpad + + * https://blueprints.launchpad.net/openstack-ansible/+spec/openstack-distribution-packages + +This spec outlines the work required to enable the OpenStack-Ansible roles to +install the OpenStack services using the distribution packages from the distribution +Cloud repositories. + +Problem description +=================== + +OpenStack-Ansible installs the OpenStack services from the source. Whilst this +is great in terms of flexibility, it creates some problems such as: + +* Long deployment times since wheel packages need to be built and distributed. +* Unsupported installations by distributions. The versions of OpenStack services + built from source do not necessarily match what distributions test together as + part of their integration and verification process so it's hard for them to + provide support for such installations. As a result of which, operators have + limited options when seeking technical support for their deployments. + +Proposed change +=============== + +Add an additional installation method to all the OpenStack-Ansible roles in +which the services will be installed using the packages provided by the +distributions themselves. The default installation method will not change. + +Alternatives +------------ + +N/A + +Playbook/Role impact +-------------------- + +All the OpenStack Ansible roles which install OpenStack services (os_*) will be +impacted by the proposed change. A new variable will be made available on per-role +basis to allow deployers to select the preferred installation method. + +Switching from one installation method to the other will not be supported. +This can be clarified on the Deployer's documentation and also explicitly detected +and prevented in the Ansible playbooks possibly by storing a local fact on the host to +denote the installation method and checking it during upgrades. + +Upgrade impact +-------------- + +Upgrades should not be impacted since the default installation method will not +change. + +Security impact +--------------- + +The security of the overall installation will not change since distributions +normally backport security fixes which are already present in the upstream packages +so both installations methods will offer the same level of security reassurances. + +Performance impact +------------------ + +The overall performance of the deployment will likely be improved since the +distribution packages normally have their default settings tweaked and +optimized to match each distribution's environment and needs. + +End user impact +--------------- + +N/A + +Deployer impact +--------------- + +The benefit of this new method for deployer's is twofold: + +- Use supported packages by distributions and provide feedback back to them. + This benefits both distributions and operators since both ends use packages + which have passed integration and functional testing before being released. +- Shorten deployment times since distribution packages are used instead of building + new ones from source. + +Developer impact +---------------- + +N/A + +Dependencies +------------ + +N/A + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + Markos Chandras (hwoarang) + +Work items +---------- + +The following work items are the same across all impacted roles + +* Move existing installation tasks to a new file (``${role}_install_source.yml``) +* Create new file (``${role}_install_distro.yml``) with a set of tasks for distribution + installations if necessary. +* Add new variable to allow deployers to select installation method (``${role}_install_method``) +* Dynamically include the appropriate installation file based on the variable's value + +Testing +======= + +Since the default installation method does not change, no new tests are required. +However, developers may choose to add new jobs on per distribution basis to test +the new installation method. + +Documentation impact +==================== + +Documentation needs to be modified to explain how to use the ``distribution`` +installation method. + +References +========== + +N/A