6.4 KiB
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 Stacklight1 2 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.
- 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
- 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