Merge "Containerized OpenStack on K8s proposal"
This commit is contained in:
commit
8961edaa45
|
@ -0,0 +1,272 @@
|
|||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
=========================================
|
||||
Containerized Control Plane on Kubernetes
|
||||
=========================================
|
||||
|
||||
https://blueprints.launchpad.net/fuel/+spec/ccp
|
||||
|
||||
This is a meta specification to describe in details creation of the new
|
||||
experimental project under the Fuel project umbrella to provide to users
|
||||
Containerized OpenStack deployment on top of Kubernetes, codename
|
||||
"Fuel CCP".
|
||||
|
||||
--------------------
|
||||
Problem description
|
||||
--------------------
|
||||
|
||||
Containerized Control Plane (CCP) is the initiative to package OpenStack
|
||||
services in the containers and use standard container management framework to
|
||||
run and manage them. It includes following areas, but not limited to them:
|
||||
|
||||
* OpenStack containerization and container image building tooling. OpenStack
|
||||
components are planned to be installed into container images from source
|
||||
code (not using deb/rpm packages).
|
||||
* CI/CD to produce properly layered and versioned containers for the supported
|
||||
stable and current master branches of OpenStack projects
|
||||
* OpenStack deployment in containers on top of Kubernetes with HA for OpenStack
|
||||
services and their dependencies (e.g. MySQL, RabbitMQ, etc.)
|
||||
* Tooling for deploying and operating OpenStack clusters with support for the
|
||||
upgrades, patching, scaling and changing configuration
|
||||
|
||||
Fuel CCP governance will be a separate experimental project under the openstack
|
||||
git namespace with unique specs and core team. There is no intention right now
|
||||
to apply for the Big Tent. The nearest example of the same governance is 3rd
|
||||
party Fuel plugin done not by Mirantis that aren't under Big Tent and not
|
||||
controlled by the main Fuel core team.
|
||||
|
||||
Separate Launchpad project will be used for the blueprints and bugs management.
|
||||
Fuel's main IRC channels will be initially used for communication (#fuel) and
|
||||
there will be weekly sub-team meetings as part of the main Fuel weekly IRC
|
||||
meetings.
|
||||
|
||||
CCP is to be a set of repositories with Docker image definitions together with
|
||||
Kubernetes applications definitions. It is a single git repository per
|
||||
OpenStack component plus few repositories with related software, tooling,
|
||||
such as 3rd party CI config, installer and etc. We’re going to start with the
|
||||
minimal set of the repositories for the “core” OpenStack implementation plus
|
||||
logging and monitoring implementation based on the existing Stacklight [0]_
|
||||
[1]_ expertise. The CI system will use upstream infra CI as much as possible
|
||||
and 3rd party CI for running end-to-end deployment tests.
|
||||
|
||||
The initial list of repositories for CCP initiative:
|
||||
|
||||
* fuel-ccp (main repo, image build tool, app framework, tooling)
|
||||
* fuel-ccp-specs
|
||||
* fuel-ccp-installer
|
||||
* fuel-ccp-tests
|
||||
* fuel-ccp-ci-config (~ project-config for 3rd party CI)
|
||||
* fuel-ccp-debian-base
|
||||
* fuel-ccp-openstack-base
|
||||
* fuel-ccp-entrypoint
|
||||
* fuel-ccp-mariadb
|
||||
* fuel-ccp-keystone
|
||||
* fuel-ccp-glance
|
||||
* fuel-ccp-memcached
|
||||
* fuel-ccp-horizon
|
||||
* fuel-ccp-neutron (incl. ovs)
|
||||
* fuel-ccp-rabbitmq
|
||||
* fuel-ccp-nova
|
||||
* fuel-ccp-stacklight (LMA stack)
|
||||
|
||||
Each repository will have it's own core reviewers team and there will be one
|
||||
general core reviewers team with permissions in all repositories.
|
||||
|
||||
----------------
|
||||
Proposed changes
|
||||
----------------
|
||||
|
||||
None. There will be no changes to the existing Fuel projects now.
|
||||
|
||||
Web UI
|
||||
======
|
||||
|
||||
None. There is no intention to integrate with Web UI on the early stages of
|
||||
the initiative.
|
||||
|
||||
|
||||
Nailgun
|
||||
=======
|
||||
|
||||
None. There is no intention to integrate with Nailgun on the early stages of
|
||||
the initiative.
|
||||
|
||||
Data model
|
||||
----------
|
||||
|
||||
None
|
||||
|
||||
|
||||
REST API
|
||||
--------
|
||||
|
||||
None
|
||||
|
||||
Orchestration
|
||||
=============
|
||||
|
||||
None
|
||||
|
||||
|
||||
RPC Protocol
|
||||
------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Fuel Client
|
||||
===========
|
||||
|
||||
None
|
||||
|
||||
|
||||
Plugins
|
||||
=======
|
||||
|
||||
None
|
||||
|
||||
|
||||
Fuel Library
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
|
||||
------------
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
This spec is actually describes an alternative experimental approach for
|
||||
OpenStack deployment, but there are few questions to answer about alternatives.
|
||||
|
||||
|
||||
1. Why not use Kolla's container images?
|
||||
There is a set of fundamental requirements for container images that is
|
||||
currently not covered or controversial to some Kolla development principles.
|
||||
This list will be maintained and discussed with Kolla community under the
|
||||
following specification published to Kolla project:
|
||||
I18b319cb796192a1e61ecd516a485dc82d52652f
|
||||
|
||||
2. Why not contribute to Kolla-Kubernetes?
|
||||
It's based on the Kolla container images, while we need to solve list of
|
||||
requirements described in I18b319cb796192a1e61ecd516a485dc82d52652f
|
||||
|
||||
--------------
|
||||
Upgrade impact
|
||||
--------------
|
||||
|
||||
It'll be separate activity to define migration path from current to the
|
||||
Kubernetes / CCP based OpenStack version.
|
||||
|
||||
---------------
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
--------------------
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
---------------
|
||||
End user impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
------------------
|
||||
Performance impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
-----------------
|
||||
Deployment impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
----------------
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
---------------------
|
||||
Infrastructure impact
|
||||
---------------------
|
||||
|
||||
Separate 3rd party CI will be used to run end-to-end tests.
|
||||
|
||||
--------------------
|
||||
Documentation impact
|
||||
--------------------
|
||||
|
||||
Separate documentation will be needed for CCP initiative.
|
||||
|
||||
--------------
|
||||
Implementation
|
||||
--------------
|
||||
|
||||
Assignee(s)
|
||||
===========
|
||||
|
||||
Primary assignee:
|
||||
slukjanov
|
||||
|
||||
Other contributors:
|
||||
None
|
||||
|
||||
Mandatory design review:
|
||||
* Vladimir Kozhukalov <vkozhukalov@mirantis.com>
|
||||
* Sergii Golovatiuk <sgolovatiuk@mirnatis.com>
|
||||
* Bulat Gaifullin <bgaifullin@mirantis.com>
|
||||
* Julia Aranovich <jkirnosova@mirantis.com>
|
||||
|
||||
|
||||
Work Items
|
||||
==========
|
||||
|
||||
* Create separate CCP Launchpad project
|
||||
* Create a set of CCP repositories
|
||||
* Setup 3-rd party CCP CI
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
-----------
|
||||
Testing, QA
|
||||
-----------
|
||||
|
||||
It is not planned to use current Fuel QA resources. All tests
|
||||
will be run on a separate CI (partly upstream, partly 3-rd party)
|
||||
and test code is to be written by CCP sub-team.
|
||||
|
||||
Acceptance criteria
|
||||
===================
|
||||
|
||||
* A set of CCP repositories are ready to use for development
|
||||
* CCP Launchpad project is ready to use for tracking CCP bugs and BPs
|
||||
* CCP 3-rd party CI is available to add CCP testing jobs
|
||||
|
||||
|
||||
----------
|
||||
References
|
||||
----------
|
||||
|
||||
.. [0] https://www.mirantis.com/blog/stacklight-logging-monitoring-alerting-lma-toolchain-mirantis-openstack/
|
||||
.. [1] https://www.youtube.com/watch?v=JF1BKgH9uco
|
Loading…
Reference in New Issue