What is Fuel?
Fuel is an all-in-one control plane for automated hardware discovery, network verification, operating systems provisioning and deployment of OpenStack. It provides user-friendly Web interface for installations management, simplifying OpenStack installation up to a few clicks.
This installer has been battle-tested during 2013 in a number of OpenStack deployments on platforms like as Dell (C6220 & R320), HP (DL380), Supermicro (6027TR-HTRF), Lenovo ThinkServer (RD530) and Cisco UCS-C.
The key features are:
- hardware discovery
- hardware configuration in UI (networks & disk partitioning)
- ability to spin up and manage multiple OpenStack clusters
- support for non-HA and HA OpenStack deployment configurations
- pre-deployment checks and network validation
- post-deployment checks and running a set of tests for validating deployed OpenStack
- view logs in real-time through UI
- support for CentOS and Ubuntu, and it can be extended to support other distributions too
- support for multiple OpenStack distributions
Mirantis uses Fuel as a part of their Openstack related solutions and they are our major contributor. For more details look at http://software.mirantis.com/
Fuel is not monolithic. It consists of several independent components. Some of those components are Fuel specific components, while others are third-party services like Cobbler, Puppet, Mcollective, etc. Some components can be reused separately from Fuel without any modifications, some will require little tweaks.
- Nailgun is the heart of Fuel project. Nailgun as other Openstack projects is written in Python programming language. It implements REST API as well as deployment data management. It manages disk volumes configuration data, networks configuration data and any other environment specific data which are necessary for successful deployment. It has required orchestration logic to build instructions for provisioning and deployment in a right order. Nailgun uses SQL database to store its data and AMQP service to interact with workers. Fuel CLI provides even more possible actions than UI.
- Astute is another important component, which represents Nailgun's workers, and it's function is to run certain actions according to the instructions provided from Nailgun. In fact, Astute is nothing more than just a layer which encapsulates all the details about interaction with a variety of services such as Cobbler, Puppet, shell scripts, etc. and provides universal asynchronous interface to those services. Depending on what we need to do we can either manage service directly via its native protocol (for example XML-RPC protocol is used for Cobbler) or we can use Mcollective agents to perform specific tasks such as launching "puppet apply" on a remote node or running a script. Astute exchanges the data with Nailgun via AMQP.
- Cobbler is used as provisioning service at the moment. There is a POC ready for move to Ironic, and production version is being implemented.
- Puppet is our only deployment service at the moment. It is possible to create MCollective agent to manage other configuration management frameworks, such as Chef, SaltStack, etc.
- Mcollective agents allow us to perform specific tasks like hard drives clearing, network connectivity probing etc.
- OSTF (OpenStack Testing Framework, or Health Check) is separated component, which can be easily removed and reused without Fuel. It implements post-deployment verification of OpenStack. It's main goal is to verify maximum of functionality taking minimum of time.
Current release info
Join Fuel team
If you like the idea of free opensource software, if you like the idea of cloud computing, if you like the idea of making the world better, we certainly want you to join. We try to be as much open as possible. We are always glad to share our own experience as well as to adopt incoming ideas. Join us!
Areas of contribution
We are happy to see any contribution into Fuel, including but not limited to:
- Testing and failing bugs
- Suggesting improvements in blueprints or in mailing list
- Confirming existing bugs
- Verifying fixed bugs, especially hardware specific
- Fixing documentation
- And code contribution, of course!
|REST API + CLI + UI||https://github.com/stackforge/fuel-web|
|Review in progress||https://review.openstack.org/#/q/status:open+fuel,n,z|
|Feature Design template||https://docs.google.com/a/mirantis.com/document/d/1KlTTM0X-v9nVxyG1ZSdOEpf_yj4EtzNL1Q9Sd4v5DX0|
- Pluggable architecture in order to easily add specific functionality
- Patching / Upgrade of Fuel itself
- Patching / Upgrade of Openstack (w/o or w/ minimal downtime)
- Closer integration with other Openstack services
- and many other.. see https://blueprints.launchpad.net/fuel. Feel free to file your own feature request.
Subscribe to mailing lists
- OpenStack developers mailing list. Fuel traffic is there with subject containing "[Fuel]".
- OpenStack announcements mailing list. Announcements about the OpenStack project like product release information, security advisories, important discussions. This is a low-traffic, read-only list.
- (being deprecated) fuel-dev launchpad mailing list contains only Fuel related discussions. To subscribe, find "Subscribe" link on the left side of the page after becoming a member of fuel-dev team. This mailing list is being deprecated, as we move all discussions to openstack-dev with subject containing "[Fuel]"
- There are even more mailing lists out there, check out MailingLists on this.
IRC at freenode.net
|#fuel||General channel. Logged here|
|#fuel-dev||Development channel. Logged here.|
|How to build your Fuel ISO||http://docs.mirantis.com/fuel-dev/develop/env.html#building-the-fuel-iso|
|Health Check (OSTF) contributors guide||http://docs.mirantis.com/fuel-dev/develop/ostf_contributors_guide.html|
|Contributing to Fuel Library (puppet modules)||http://docs.mirantis.com/fuel-dev/develop/module_structure.html|
|Devops framework - distributed testing of Fuel envs||http://docs.mirantis.com/fuel-dev/devops.html|
openstack deploy deployment automated icehouse havana cobbler install installation provisioning puppet mcollective tripleo ironic web cli ui opensource centos ubuntu distribution discovering python ruby diskimage-builder