Jump to: navigation, search

Difference between revisions of "Fuel"

(Weekly meeting)
m (Added Fuel 11 Community link)
 
(110 intermediate revisions by 23 users not shown)
Line 1: Line 1:
= What is Fuel? =
+
[[File:Fuel label.png|thumbnail]]
  
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.
+
=Mission Statement=
 +
 
 +
To streamline and accelerate the process of deploying, testing and maintaining various configurations of OpenStack at scale.
 +
 
 +
=People=
 +
 
 +
* PTL
 +
** Vladimir Kuklin (aglarendil)
 +
* Infrastructure Liaison
 +
** Ivan Remizov (iremizov)
 +
** Igor Belikov (igorbelikov)
 +
 
 +
See the [https://specs.openstack.org/openstack/fuel-specs/policy/team-structure.html Team Structure] policy document for more details on the internal organization and operation of the Fuel team.
 +
 
 +
=What is Fuel?=
 +
 
 +
Fuel is an open source deployment and management tool for OpenStack. Developed as an OpenStack community effort, it provides an intuitive, GUI-driven experience for deployment and management of OpenStack, related community projects and plug-ins.
 +
 
 +
Fuel brings consumer-grade simplicity to streamline and accelerate the otherwise time-consuming, often complex, and error-prone process of deploying, testing and maintaining various configuration flavors of OpenStack at scale. Unlike other platform-specific deployment or management utilities, Fuel is an upstream OpenStack project that focuses on automating the deployment and testing of OpenStack and a range of third-party options, so it’s not compromised by hard bundling or vendor lock-in.
  
 
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.
 
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.
Line 13: Line 31:
 
* post-deployment checks and running a set of tests for validating deployed OpenStack
 
* post-deployment checks and running a set of tests for validating deployed OpenStack
 
* view logs in real-time through UI
 
* view logs in real-time through UI
* support for CentOS, Ubuntu, and RHEL
+
* support for CentOS and Ubuntu, and it can be extended to support other distributions too
 
* support for multiple OpenStack distributions
 
* 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/
  
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 online demo===
 +
If you would like to play with it in a demo environment, visit [http://demo.fuel-infra.org:8000/ http://demo.fuel-infra.org:8000/] (login and passwords is 'admin').  This deployment emulates the provisioning process giving you a chance to see how the UI works without needing to install anything on your own hardware.
 +
 
 +
===Fuel architecture===
 +
<center>[[File:Fuel-architecture.png|850px]]</center>
 +
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.
 +
* '''UI''' is single page application, written in JavaScript. It uses bootstrap and backbone frameworks underneath. Check out [http://www.youtube.com/watch?v=oHE9OC6OibE#action=share video] which demonstrates UI and basic capabilities of Fuel of version 4.0 (this is Mirantis distribution version, which is different from the community by Mirantis logo only).
 +
* '''Nailgun''' is the heart of the Fuel project. Nailgun like other Openstack projects is written in the Python programming language. It implements a REST API as well as deployment data management. It manages disk volumes, configuration data, network 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 the right order. Nailgun uses a SQL database to store its data and AMQP service to interact with workers.  [[Fuel CLI]] provides even more possible actions than the UI.
 +
* '''Astute''' is another important component, which represents Nailgun's workers, and its function is to run certain actions according to the instructions provided by 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 a service directly via its native protocol (for example the 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 a provisioning service at the moment. There is a POC ready to move to Ironic, and a production version is being implemented.
 +
* '''Puppet''' is our only deployment service at the moment. It would be possible to create MCollective agents to manage other configuration management frameworks, such as Chef, SaltStack, etc.
 +
* '''MCollective agents''' allow us to perform specific tasks like hard drive clearing, network connectivity probing etc.
 +
* '''OSTF''' (OpenStack Testing Framework, or Health Check) is a separate component, which can be easily removed and reused without Fuel. It implements post-deployment verification of OpenStack. Its main goal is to verify maximum functionality taking a minimum of time.
  
=Fuel architecture=
+
=Where to get Fuel=
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.  
+
===Releases===
* The heart of Fuel project is Nailgun. Nailgun as other Openstack projects is written in Python programming language. It implements REST API as well as deployment data mangement. It manage disk volumes configuration data, networks configuration data and any other environment specific data which are necessary for successful deployment. Nailgun uses SQL database to store its data and AMQP service to interact with orchestration component.  
+
* [http://seed.fuel-infra.org/fuelweb-community-release/fuel-community-11.0.iso.torrent Download Fuel 11.0 ISO (torrent)]
* Another extremely important component is so called orchestrator. It is written in Ruby and we tried it to be as much data driven as possible. In fact, the orchestrator 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.
+
* [http://seed.fuel-infra.org/fuelweb-community-release/fuel-community-10.0.iso.torrent Download Fuel 10.0 ISO (torrent)]
* Our provisioning service at the moment is Cobbler. We are also working on the orchestrator driver for Ironic.
+
* [http://seed.fuel-infra.org/fuelweb-community-release/fuel-community-9.0.iso.torrent Download Fuel 9.0 ISO (torrent)]
* Puppet is our only deployment service.
+
* [http://seed.fuel-infra.org/fuelweb-community-release/fuel-community-8.0.iso.torrent Download Fuel 8.0 ISO (torrent)]
* We also have a set of Mcollective agents which allow us to perform specific tasks like hard drives clearing, network connectivity probing etc.  
 
  
<center>[[File:Fuel architecture.png|850px]]</center>
+
===Nightly builds===
 +
* Fuel nightly builds are available from our CI via torrent: [https://ci.fuel-infra.org/ Nightly builds]
  
=Fuel components=
+
===Release Schedule===
 +
====Upcoming Releases====
 +
* [[Fuel/Release_Schedule|Upcoming Release Schedule]]
  
====Web UI====
+
====Old Releases====
To get an idea about what Fuel web user interface looks like you can watch this video http://www.youtube.com/watch?v=PppYpbCg4AU This is the recording of Mike Scherbakov's speech at Openstack Summit in Portland in April 2013. Since that time a lot of new features were added but this video gives good introduction.
+
* [[Fuel/5.0_Release_Schedule|5.0 Release Schedule]]
 +
* [[Fuel/5.1_Release_Schedule|5.1 Release Schedule]]
 +
* [[Fuel/5.1.1_Release_Schedule|5.1.1 Release Schedule]]
 +
* [[Fuel/6.0_Release_Schedule|6.0 Release Schedule]]
 +
* [[Fuel/6.1_Release_Schedule|6.1 Release Schedule]]
 +
* [[Fuel/7.0_Release_Schedule|7.0 Release Schedule]]
 +
* [[Fuel/8.0_Release_Schedule|8.0 Release Schedule]]
 +
* [[Fuel/9.0_Release_Schedule|9.0 Release Schedule]]
 +
* [[Fuel/9.1_Release_Schedule|9.1-10.0 Release Schedule]]
  
====CLI====
+
===Source code===
 +
* Build system: [https://github.com/openstack/fuel-main https://github.com/openstack/fuel-main]
 +
* REST API + CLI + UI: [https://github.com/openstack/fuel-web https://github.com/openstack/fuel-web]
 +
* Task executor: [https://github.com/openstack/fuel-astute https://github.com/openstack/fuel-astute]
 +
* Puppet modules: [https://github.com/openstack/fuel-library https://github.com/openstack/fuel-library]
 +
* User documentation: [https://github.com/openstack/fuel-docs https://github.com/openstack/fuel-docs]
 +
* Openstack Healthcheck: [https://github.com/openstack/fuel-ostf https://github.com/openstack/fuel-ostf]
  
[[Fuel CLI|Understanding Environment deployment with Fuel CLI]]
+
===Development related links===
 +
* Launchpad project: [https://launchpad.net/fuel https://launchpad.net/fuel]
 +
* Code review dashboards (generated by [https://github.com/stackforge/gerrit-dash-creator/ gerrit-dash-creator]): [https://review.openstack.org/#/dashboard/?foreach=%28project%3A%5Eopenstack%2Ffuel%2D.%2A+OR+project%3Aopenstack%2Fpython%2Dfuelclient%29+status%3Aopen+NOT+project%3Aopenstack%2Ffuel%2Ddocs+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3ACode%2DReview%3C%3D%2D2&title=Fuel+Review+Inbox&My+Patches+Requiring+Attention=owner%3Aself+%28label%3AVerified%2D1+OR+label%3ACode%2DReview%2D1+OR+label%3AWorkflow%3C%3D%2D1%29&Fuel+Specs=NOT+label%3AWorkflow%3E%3D1+NOT+owner%3Aself+project%3Aopenstack%2Ffuel%2Dspecs&Needs+Approval=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+label%3ACode%2DReview%3E%3D2+NOT+label%3ACode%2DReview%3C%3D%2D1&Ready+for+Core+Reviewers=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+label%3AVerified%3E%3D1+label%3ACode%2DReview%3E%3D1+NOT+label%3ACode%2DReview%3E%3D2+NOT+label%3ACode%2DReview%3C%3D%2D1&5+Days+Without+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+NOT+label%3ACode%2DReview%3C%3D2+age%3A5d&No+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+NOT+label%3ACode%2DReview%3C%3D2+NOT+age%3A5d+limit%3A50&Disagreement=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+label%3ACode%2DReview%3C%3D%2D1+label%3ACode%2DReview%3E%3D1&Negative+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+label%3ACode%2DReview%2D1+NOT+label%3ACode%2DReview%3C%3D%2D2+NOT+label%3ACode%2DReview%3E%3D1+limit%3A20 Fuel Review Inbox], [https://review.openstack.org/#/dashboard/?foreach=%28project%3Aopenstack%2Ffuel%2Dweb+OR+project%3Aopenstack%2Ffuel%2Dplugins+OR+project%3Aopenstack%2Ffuel%2Dmenu+OR+project%3Aopenstack%2Ffuel%2Dagent+OR+project%3Aopenstack%2Fshotgun+OR+project%3Aopenstack%2Fnetwork%2Dchecker+OR+project%3Aopenstack%2Fpython%2Dfuelclient%29+status%3Aopen+branch%3Amaster+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3ACode%2DReview%3C%3D%2D2&title=Fuel+Python+Review+Inbox&My+Patches+Requiring+Attention=owner%3Aself+%28label%3AVerified%2D1+OR+label%3ACode%2DReview%2D1+OR+label%3AWorkflow%3C%3D%2D1%29&Needs+Approval=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+label%3ACode%2DReview%3E%3D2+NOT+label%3ACode%2DReview%3C%3D%2D1&Ready+for+Core+Reviewers=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+label%3AVerified%3E%3D1+label%3ACode%2DReview%3E%3D1+NOT+label%3ACode%2DReview%3E%3D2+NOT+label%3ACode%2DReview%3C%3D%2D1&5+Days+Without+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+NOT+label%3ACode%2DReview%3C%3D2+age%3A5d&No+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+NOT+label%3ACode%2DReview%3C%3D2+NOT+age%3A5d+limit%3A50&Disagreement=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+label%3ACode%2DReview%3C%3D%2D1+label%3ACode%2DReview%3E%3D1&Negative+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3AVerified%3C%3D%2D1+NOT+owner%3Aself+NOT+project%3Aopenstack%2Ffuel%2Dspecs+label%3ACode%2DReview%2D1+NOT+label%3ACode%2DReview%3C%3D%2D2+NOT+label%3ACode%2DReview%3E%3D1+limit%3A20 Fuel Python Review Inbox], [https://review.openstack.org/#/dashboard/?foreach=%28project%3Aopenstack%2Ffuel%2Ddocs%29+status%3Aopen+NOT+label%3ACode%2DReview%3C%3D%2D2&title=Fuel+Documentation+Review+Inbox&My+patches+requiring+attention=owner%3Aself+%28label%3AVerified%3C%3D%2D1+OR+label%3AWorkflow%3C%3D%2D1+OR+label%3ACode%2DReview%3C%3D%2D1%29&Waiting+for+approval=NOT+label%3AVerified%3C%3D%2D1+label%3ACode%2DReview%3E%3D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3ACode%2DReview%3C%3D%2D1&5+days+without+feedback=age%3A5d+NOT+owner%3Aself+NOT+label%3AVerified%3C%3D%2D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3ACode%2DReview%3C%3D2&No+negative+feedback=NOT+age%3A5d+NOT+owner%3Aself+NOT+label%3AVerified%3C%3D%2D1+NOT+label%3AWorkflow%3C%3D%2D1+NOT+label%3ACode%2DReview%3C%3D2+limit%3A50&Other=NOT+owner%3Aself+NOT+label%3AVerified%3C%3D%2D1+label%3ACode%2DReview%2D1+limit%3A20 Fuel Documentation Review Inbox], [http://ghostcloud.net/openstack_gerrit_dashboards/ OpenStack Gerrit Dashboards]
 +
* Development documentation: [http://docs.fuel-infra.org/fuel-dev http://docs.fuel-infra.org/fuel-dev]
 +
* Feature Design template: [http://git.openstack.org/cgit/openstack/fuel-specs/tree/specs/template.rst http://git.openstack.org/cgit/openstack/fuel-specs/tree/specs/template.rst]
 +
* Approved specifications [http://specs.fuel-infra.org/ specs.fuel-infra.org]
 +
* Nightly builds [https://ci.fuel-infra.org/view/ISO/ https://ci.fuel-infra.org/view/ISO/]
  
====Nailgun====
+
=How is Fuel developed?=
This component is written in Python. It provides REST API and manages all the data about Openstack clusters deployment and management. It is the heart of Fuel.
+
=== Weekly meetings ===
 +
Fuel team holds weekly [https://wiki.openstack.org/wiki/Meetings/Fuel meetings] on Thursdays at [http://www.worldtimebuddy.com/?qm=1&lid=100&h=100&date=2014-3-27&sln=16-17 1600 UTC] in IRC, at the #openstack-meeting-alt channel. If you have a topic to discuss, you can add it to the [https://etherpad.openstack.org/p/fuel-weekly-meeting-agenda agenda].
  
====Astute====
+
=== Features blueprints and specs ===
Astute is written in Ruby. It is a wrapper around Mcollective. The majority of its functionality is implemented as Mcollective agents. It is mostly for launching arbitrary commands on remote nodes. For example we use it for launching "puppet apply" in order to install all necessary packages and configure services. Besides, it has driver for interaction with Cobbler.
+
See [[Blueprints]] for details.
  
=Join Fuel team=
+
=== Release Milestones ===
==== Greeting ====
+
* [[FeatureFreeze|Feature Freeze (FF)]]
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! 
+
* [[FeatureFreeze#Exception_procedure|Feature Freeze Exception (FFE)]]
 +
* [[Fuel/Soft_Code_Freeze|Soft Code Freeze (SCF)]]
 +
* [[Fuel/Hard_Code_Freeze|Hard Code Freeze (HCF)]]
  
==== Weekly meeting ====
+
= Where can documentation be found? =
Fuel team holds weekly [https://wiki.openstack.org/wiki/Meetings/Fuel meetings] on Tuesdays at [http://www.worldtimebuddy.com/?qm=1&lid=524901,1816670,2147714&h=524901&date=2014-2-27&sln=23-24 1900 UTC] in IRC, at the #openstack-meeting channel. If you have a topic to discuss, you can add it to the [https://etherpad.openstack.org/p/fuel-weekly-meeting-agenda agenda].
+
* The primary Fuel documentation is available at [http://docs.fuel-infra.org/openstack/fuel/ http://docs.fuel-infra.org/openstack/fuel/].  Documents available here are:
 +
** Planning Guide
 +
** User Guide
 +
** Operations Guide
 +
** Running Mirantis OpenStack on VirtualBox
 +
** Reference Architectures
 +
** Terminology Reference
 +
** Release Notes
 +
** Fuel License
 +
* Fuel development documentation is available at [http://docs.fuel-infra.org/fuel-dev/ http://docs.fuel-infra.org/fuel-dev/]. This is the best source of information for anyone interested in doing Fuel development work, or if you'd just like to get a better look behind the scenes.
 +
* Documentation for using and developing Fuel Plugins can be found at [[Fuel/Plugins|Plugins]] wiki page.
  
==== IRC at freenode.net ====
+
=Contributing to Fuel=
{| border="1" cellpadding="2" cellspacing="0"
+
===How does the contribution process work?===
|  #fuel
+
Fuel is an open source project developed as an OpenStack community effort, and adheres to the same collaboration and development methods shared by OpenStack projects. The repositories live in [https://github.com/openstack/?utf8=%E2%9C%93&query=fuel- Github] and use the same [http://docs.openstack.org/infra/manual/developers.html#development-workflow Development workflow] followed by all other OpenStack related projects.
| General channel
 
|-
 
#fuel-dev
 
| Development channel
 
|}
 
  
==== Source code ====
+
===More information on contributing to Fuel===
{| border="1" cellpadding="2" cellspacing="0"
+
If you are interested in learning more about how you can contribute to Fuel, you can find more information on the [[Fuel/How_to_contribute|"How to contribute"]] page.
| Build system 
 
| https://github.com/stackforge/fuel-main
 
|-
 
| REST API + CLI + UI
 
| https://github.com/stackforge/fuel-web
 
|-
 
| Deployment orchestrator
 
| https://github.com/stackforge/fuel-astute
 
|-
 
| Puppet modules
 
| https://github.com/stackforge/fuel-library
 
|-
 
| User documentation
 
| https://github.com/stackforge/fuel-docs
 
|-
 
| Openstack Healthcheck
 
| https://github.com/stackforge/fuel-ostf
 
|}
 
  
==== Development related links ====
+
'''Keywords''' <br />
{| border="1" cellpadding="2" cellspacing="0"
+
openstack deploy deployment automated juno icehouse havana cobbler install installation provisioning puppet mcollective tripleo ironic web cli ui opensource centos ubuntu distribution discovering python ruby diskimage-builder
| Launchpad project
 
| https://launchpad.net/fuel
 
|-
 
| Review in progress
 
| https://review.openstack.org/#/q/status:open+fuel,n,z
 
|-
 
| Development documentation
 
| http://docs.mirantis.com/fuel-dev
 
|-
 
| Slides
 
| https://docs.google.com/file/d/0B5VvW7EEta1WMTdFajRzY0lGbkU
 
|}
 
  
==== Roadmap ====
+
====Subpages ===
* Client python library to make third-party applications to use Fuel
 
* 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
 
  
==== Keywords ====
+
{{Special:PrefixIndex/:Fuel/}}
openstack deploy deployment havana grizzly cobbler install installation provisioning puppet mcollective tripleo ironic web cli ui opensource centos ubuntu redhat rhel distribution discovering python ruby diskimage-builder
 

Latest revision as of 03:01, 19 May 2017

Fuel label.png

Mission Statement

To streamline and accelerate the process of deploying, testing and maintaining various configurations of OpenStack at scale.

People

  • PTL
    • Vladimir Kuklin (aglarendil)
  • Infrastructure Liaison
    • Ivan Remizov (iremizov)
    • Igor Belikov (igorbelikov)

See the Team Structure policy document for more details on the internal organization and operation of the Fuel team.

What is Fuel?

Fuel is an open source deployment and management tool for OpenStack. Developed as an OpenStack community effort, it provides an intuitive, GUI-driven experience for deployment and management of OpenStack, related community projects and plug-ins.

Fuel brings consumer-grade simplicity to streamline and accelerate the otherwise time-consuming, often complex, and error-prone process of deploying, testing and maintaining various configuration flavors of OpenStack at scale. Unlike other platform-specific deployment or management utilities, Fuel is an upstream OpenStack project that focuses on automating the deployment and testing of OpenStack and a range of third-party options, so it’s not compromised by hard bundling or vendor lock-in.

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 online demo

If you would like to play with it in a demo environment, visit http://demo.fuel-infra.org:8000/ (login and passwords is 'admin'). This deployment emulates the provisioning process giving you a chance to see how the UI works without needing to install anything on your own hardware.

Fuel architecture

Fuel-architecture.png

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.

  • UI is single page application, written in JavaScript. It uses bootstrap and backbone frameworks underneath. Check out video which demonstrates UI and basic capabilities of Fuel of version 4.0 (this is Mirantis distribution version, which is different from the community by Mirantis logo only).
  • Nailgun is the heart of the Fuel project. Nailgun like other Openstack projects is written in the Python programming language. It implements a REST API as well as deployment data management. It manages disk volumes, configuration data, network 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 the right order. Nailgun uses a SQL database to store its data and AMQP service to interact with workers. Fuel CLI provides even more possible actions than the UI.
  • Astute is another important component, which represents Nailgun's workers, and its function is to run certain actions according to the instructions provided by 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 a service directly via its native protocol (for example the 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 a provisioning service at the moment. There is a POC ready to move to Ironic, and a production version is being implemented.
  • Puppet is our only deployment service at the moment. It would be possible to create MCollective agents to manage other configuration management frameworks, such as Chef, SaltStack, etc.
  • MCollective agents allow us to perform specific tasks like hard drive clearing, network connectivity probing etc.
  • OSTF (OpenStack Testing Framework, or Health Check) is a separate component, which can be easily removed and reused without Fuel. It implements post-deployment verification of OpenStack. Its main goal is to verify maximum functionality taking a minimum of time.

Where to get Fuel

Releases

Nightly builds

  • Fuel nightly builds are available from our CI via torrent: Nightly builds

Release Schedule

Upcoming Releases

Old Releases

Source code

Development related links

How is Fuel developed?

Weekly meetings

Fuel team holds weekly meetings on Thursdays at 1600 UTC in IRC, at the #openstack-meeting-alt channel. If you have a topic to discuss, you can add it to the agenda.

Features blueprints and specs

See Blueprints for details.

Release Milestones

Where can documentation be found?

  • The primary Fuel documentation is available at http://docs.fuel-infra.org/openstack/fuel/. Documents available here are:
    • Planning Guide
    • User Guide
    • Operations Guide
    • Running Mirantis OpenStack on VirtualBox
    • Reference Architectures
    • Terminology Reference
    • Release Notes
    • Fuel License
  • Fuel development documentation is available at http://docs.fuel-infra.org/fuel-dev/. This is the best source of information for anyone interested in doing Fuel development work, or if you'd just like to get a better look behind the scenes.
  • Documentation for using and developing Fuel Plugins can be found at Plugins wiki page.

Contributing to Fuel

How does the contribution process work?

Fuel is an open source project developed as an OpenStack community effort, and adheres to the same collaboration and development methods shared by OpenStack projects. The repositories live in Github and use the same Development workflow followed by all other OpenStack related projects.

More information on contributing to Fuel

If you are interested in learning more about how you can contribute to Fuel, you can find more information on the "How to contribute" page.

Keywords
openstack deploy deployment automated juno icehouse havana cobbler install installation provisioning puppet mcollective tripleo ironic web cli ui opensource centos ubuntu distribution discovering python ruby diskimage-builder

=Subpages