Jump to: navigation, search

Difference between revisions of "Fuel"

(Re-organization of entire Fuel wiki)
Line 1: Line 1:
= What is Fuel? =
+
=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.
+
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.
  
Play with it: http://fuel-demo.mirantis.com:8000/. This demo deployment doesn't run actual provisioning or deployment; it's just UI and base logic with emulation of both processes. You don't need to wait an hour for deployment to finish, you can see how it works in seconds.
+
Fuel brings consumer-grade simplicity to streamline and accelerate the otherwise time-consuming, often complex, and error-prone process of deploying 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 of OpenStack and a range of third-party options, so it’s not compromised by hard bundling or vendor lock-in.
 +
 
 +
If you would like to play with it in a demo environment, visit [http://fuel-demo.mirantis.com:8000/ http://fuel-demo.mirantis.com:8000/]. 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.
  
 
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 17: Line 19:
 
* support for CentOS and Ubuntu, and it can be extended to support other distributions too
 
* 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 architecture=
+
===Fuel architecture===
 
<center>[[File:Fuel-architecture.png|850px]]</center>
 
<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.
 
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.
Line 32: Line 33:
 
* '''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.
 
* '''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=
+
=How is Fuel developed?=
<big>
+
===Roadmap===
[[Fuel/5.0_Release_Schedule|5.0 Release Schedule]]
+
* 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.
  
[[Fuel/5.1_Release_Schedule|5.1 Release Schedule]]
+
=== Weekly meetings ===
</big>
 
 
 
====Nightly builds====
 
Fuel nightly builds are available from our CI via torrent:
 
 
 
[https://fuel-jenkins.mirantis.com/view/ISO/job/publish_fuel_community_iso/ Nightly builds]
 
 
 
=Join Fuel team=
 
==== Greetings ====
 
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 open as possible. We are always glad to share our own experience as well as to adopt incoming ideas. Join us! 
 
 
 
<big>
 
[[Fuel/Register|A few simple steps - register and contribute!]]
 
</big>
 
 
 
==== How to contribute ====
 
We are happy to see any contributions to Fuel, here are some examples:
 
* Test and report bugs
 
* Propose improvements in blueprints or in mailing list
 
* Confirm existing bugs
 
* Verify fixed bugs, especially hardware specific
 
* Improve documentation
 
* And of course write new code!
 
 
 
<big>
 
[[Fuel/How_to_contribute|More details on where and how to contribute to Fuel]]
 
</big>
 
 
 
==== 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].
 
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].
  
==== Source code ====
+
===Where to get Fuel===
{| border="1" cellpadding="2" cellspacing="0"
+
* Current release info
| Build system 
+
** [[Fuel/5.0_Release_Schedule|5.0 Release Schedule]]
| https://github.com/stackforge/fuel-main
+
** [[Fuel/5.1_Release_Schedule|5.1 Release Schedule]]
|-
 
| 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 ====
+
* Stable builds
{| border="1" cellpadding="2" cellspacing="0"
+
** Stable Fuel releases are available at [https://software.mirantis.com/ https://software.mirantis.com/]
| Launchpad project
 
| https://launchpad.net/fuel
 
|-
 
| Review inbox
 
| [https://review.openstack.org/#/dashboard/?foreach=%28project%3A^stackforge%2Ffuel-.*%29+status%3Aopen+NOT+label%3AWorkflow%3C%3D-1+NOT+label%3ACode-Review%3C%3D-2&title=Fuel+Inbox&My+Patches+Requiring+Attention=owner%3Aself+%28label%3AVerified-1+OR+label%3ACode-Review-1+OR+label%3AWorkflow%3C%3D-1%29&Fuel+Specs=NOT+label%3AWorkflow%3E%3D1+NOT+owner%3Aself+project%3Astackforge%2Ffuel-specs&Needs+Approval=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D-1+NOT+label%3AVerified%3C%3D-1+NOT+owner%3Aself+label%3ACode-Review%3E%3D2+NOT+label%3ACode-Review-1&5+Days+Without+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D-1+NOT+label%3AVerified%3C%3D-1+NOT+owner%3Aself+NOT+project%3Astackforge%2Ffuel-specs+NOT+label%3ACode-Review%3C%3D2+age%3A5d&No+Negative+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D-1+NOT+label%3AVerified%3C%3D-1+NOT+owner%3Aself+NOT+project%3Astackforge%2Ffuel-specs+NOT+label%3ACode-Review%3C%3D-1+NOT+label%3ACode-Review%3E%3D2+limit%3A50&Other=NOT+label%3AVerified%3C%3D-1+NOT+owner%3Aself+NOT+project%3Astackforge%2Ffuel-specs+label%3ACode-Review-1+limit%3A20 Fuel Review Inbox generated by gerrit-dash-creator]
 
|-
 
| Development documentation
 
| http://docs.mirantis.com/fuel-dev
 
|-
 
| Feature Design template
 
| New: http://git.openstack.org/cgit/stackforge/fuel-specs/tree/specs/template.rst
 
Old: https://docs.google.com/a/mirantis.com/document/d/1KlTTM0X-v9nVxyG1ZSdOEpf_yj4EtzNL1Q9Sd4v5DX0
 
|-
 
| Approved blueprint specifications
 
| https://fuel-jenkins.mirantis.com/job/merged-fuel-specs/Fuel_Development_Specs_build_results/
 
|
 
|-
 
| Nightly builds
 
| https://fuel-jenkins.mirantis.com/view/ISO/job/publish_fuel_community_iso/
 
|}
 
  
==== Roadmap ====
+
* Nightly builds
* Pluggable architecture in order to easily add specific functionality
+
** Fuel nightly builds are available from our CI via torrent: [https://fuel-jenkins.mirantis.com/view/ISO/job/publish_fuel_community_iso/ Nightly builds]
* 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 ====
+
* Source code
* [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev OpenStack developers mailing list]. If you are hacking on Fuel, or have technical question about Fuel internals, you are very welcome in this ML with subject containing "[Fuel]".
+
** Build system: [https://github.com/stackforge/fuel-main https://github.com/stackforge/fuel-main]
* [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack OpenStack users mailing list]. Fuel traffic is there with subject containing "[Fuel]". You are welcome to ask questions related to Fuel usage, including errors, etc.
+
** REST API + CLI + UI: [https://github.com/stackforge/fuel-web https://github.com/stackforge/fuel-web]
* [http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-announce 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.
+
** Deployment orchestrator: [https://github.com/stackforge/fuel-astute https://github.com/stackforge/fuel-astute]
 +
** Puppet modules: [https://github.com/stackforge/fuel-library https://github.com/stackforge/fuel-library]
 +
** User documentation: [https://github.com/stackforge/fuel-docs https://github.com/stackforge/fuel-docs]
 +
** Openstack Healthcheck: [https://github.com/stackforge/fuel-ostf https://github.com/stackforge/fuel-ostf]
  
* There are even more mailing lists out there, check out [[MailingLists]] on this.
+
* Development related links
 +
** Launchpad project: [https://launchpad.net/fuel https://launchpad.net/fuel]
 +
** Review inbox: [https://review.openstack.org/#/dashboard/?foreach=%28project%3A^stackforge%2Ffuel-.*%29+status%3Aopen+NOT+label%3AWorkflow%3C%3D-1+NOT+label%3ACode-Review%3C%3D-2&title=Fuel+Inbox&My+Patches+Requiring+Attention=owner%3Aself+%28label%3AVerified-1+OR+label%3ACode-Review-1+OR+label%3AWorkflow%3C%3D-1%29&Fuel+Specs=NOT+label%3AWorkflow%3E%3D1+NOT+owner%3Aself+project%3Astackforge%2Ffuel-specs&Needs+Approval=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D-1+NOT+label%3AVerified%3C%3D-1+NOT+owner%3Aself+label%3ACode-Review%3E%3D2+NOT+label%3ACode-Review-1&5+Days+Without+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D-1+NOT+label%3AVerified%3C%3D-1+NOT+owner%3Aself+NOT+project%3Astackforge%2Ffuel-specs+NOT+label%3ACode-Review%3C%3D2+age%3A5d&No+Negative+Feedback=NOT+label%3AWorkflow%3E%3D1+NOT+label%3AWorkflow%3C%3D-1+NOT+label%3AVerified%3C%3D-1+NOT+owner%3Aself+NOT+project%3Astackforge%2Ffuel-specs+NOT+label%3ACode-Review%3C%3D-1+NOT+label%3ACode-Review%3E%3D2+limit%3A50&Other=NOT+label%3AVerified%3C%3D-1+NOT+owner%3Aself+NOT+project%3Astackforge%2Ffuel-specs+label%3ACode-Review-1+limit%3A20 Fuel Review Inbox generated by gerrit-dash-creator]
 +
** Development documentation: [http://docs.mirantis.com/fuel-dev http://docs.mirantis.com/fuel-dev]
 +
** Feature Design template (NEW): [http://git.openstack.org/cgit/stackforge/fuel-specs/tree/specs/template.rst http://git.openstack.org/cgit/stackforge/fuel-specs/tree/specs/template.rst]
 +
** Feature Design template (OLD): [https://docs.google.com/a/mirantis.com/document/d/1KlTTM0X-v9nVxyG1ZSdOEpf_yj4EtzNL1Q9Sd4v5DX0 https://docs.google.com/a/mirantis.com/document/d/1KlTTM0X-v9nVxyG1ZSdOEpf_yj4EtzNL1Q9Sd4v5DX0]
 +
** Approved blueprint specifications [https://fuel-jenkins.mirantis.com/job/merged-fuel-specs/Fuel_Development_Specs_build_results/ https://fuel-jenkins.mirantis.com/job/merged-fuel-specs/Fuel_Development_Specs_build_results/]
 +
** Nightly builds [https://fuel-jenkins.mirantis.com/view/ISO/job/publish_fuel_community_iso/ https://fuel-jenkins.mirantis.com/view/ISO/job/publish_fuel_community_iso/]
  
==== IRC at freenode.net ====
+
= Where can documentation be found? =
{| border="1" cellpadding="2" cellspacing="0"
+
* The primary Fuel documentation is available at [http://docs.mirantis.com/openstack/fuel/ http://docs.mirantis.com/openstack/fuel/].  Documents available here are:
|  #fuel
+
** Planning Guide
| General channel. Logged [http://irclog.perlgeek.de/fuel/ here]
+
** User Guide
|-
+
** Operations Guide
|  #fuel-dev  
+
** Running Mirantis OpenStack on VirtualBox
| Development channel. Logged [http://irclog.perlgeek.de/fuel-dev/ here].
+
** Reference Architectures
|}
+
** Terminology Reference
 +
** Release Notes
 +
** Fuel License
 +
* Fuel development documentation is available at [http://docs.mirantis.com/fuel-dev/ http://docs.mirantis.com/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.
  
 +
=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 [https://github.com/stackforge Stackforge] and use the same [[Gerrit_Workflow|Gerrit workflow]] followed by all other OpenStack related projects.
  
==== Hacking ====
+
===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.
| Development environment
 
| http://docs.mirantis.com/fuel-dev/develop/env.html
 
|-
 
| How to build your Fuel ISO
 
| http://docs.mirantis.com/fuel-dev/develop/env.html#building-the-fuel-iso
 
|-
 
| Nailgun development
 
| http://docs.mirantis.com/fuel-dev/develop/nailgun.html
 
|-
 
| 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
 
|}
 
  
 
==== Keywords ====
 
==== Keywords ====
 
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
 
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

Revision as of 00:01, 23 August 2014

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 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 of OpenStack and a range of third-party options, so it’s not compromised by hard bundling or vendor lock-in.

If you would like to play with it in a demo environment, visit http://fuel-demo.mirantis.com:8000/. 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.

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 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 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.

How is Fuel developed?

Roadmap

  • 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.

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.

Where to get Fuel

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

Where can documentation be found?

  • The primary Fuel documentation is available at http://docs.mirantis.com/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.mirantis.com/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.

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 Stackforge and use the same Gerrit 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 icehouse havana cobbler install installation provisioning puppet mcollective tripleo ironic web cli ui opensource centos ubuntu distribution discovering python ruby diskimage-builder