Fuel Development Quick-Start

Fuel Development Quick-Start

If you are interested in contributing to Fuel or modifying Fuel for your own purposes, this short guide should get you pointed to all the information you need to get started.

If you are new to contributing to OpenStack, read through the “How To Contribute” page on the OpenStack wiki. See: How to contribute.

For this walk-through, let’s use the example of modifying an option to the “new environment wizard” in Fuel (example here: https://review.openstack.org/#/c/90687/1). This enhancement required modification to three files in the fuel-web repository:


In order to add, test and commit the code necessary to implement this feature, these steps were followed:

  1. Create a Fuel development environment by following the instructions found here: Fuel Development Environment.

  2. In your development environment, prepare your environment for Nailgun unit tests and Web UI tests by following the instructions found here: Nailgun Dev Environment. Be sure to run the tests noted in each section to ensure your environment confirms to a known good baseline.

  3. Branch your fuel-web checkout (see Gerrit Workflow for more information on the gerrit workflow):

    cd fuel-web
    git fetch --all;git checkout -b vcenter-wizard-fix origin/master
  4. Modify the necessary files (refer to Fuel Architecture to understand how the components of Fuel work together).

  5. Test your Nailgun changes:

    cd fuel-web
    ./run_tests.sh --no-webui
    ./run_tests.sh --flake8
    ./run_tests.sh --webui
  6. You should also test Nailgun in fake UI mode by following the steps found here: Running Nailgun in Fake Mode

  7. When all tests pass you should commit your code, which will subject it to further testing via Jenkins and Fuel CI. Be sure to include a good commit message, guidelines can be found here: Git Commit Messages.:

    git commit -a
    git review
  8. Frequently, the review process will suggest changes be made before your code can be merged. In that case, make your changes locally, test the changes, and then re-submit for review by following these steps:

    git commit -a --amend
    git review
  9. Now that your code has been committed, you should change your Fuel ISO makefile to point to your specific commit. As noted in the Fuel Development documentation, when you build a Fuel ISO it pulls down the additional repositories rather than using your local repos. Even though you have a local clone of fuel-web holding the branch you just worked on, the build script will be pulling code from git for the sub-components (Nailgun, Astute, OSTF) based on the repository and commit specified in environment variables when calling “make iso”, or as found in config.mk. You will need to know the gerrit commit ID and patch number. For this example we are looking at https://review.openstack.org/#/c/90687/1 with the gerrit ID 90687, patch 1. In this instance, you would build the ISO with:

    cd fuel-main
    NAILGUN_GERRIT_COMMIT=refs/changes/32/90687/1 make iso
  10. Once your ISO build is complete, you can test it. If you have access to hardware that can run the KVM hypervisor, you can follow the instructions found in the Devops Guide to create a robust testing environment. Otherwise, you can test the ISO with Virtualbox (https://github.com/openstack/fuel-virtualbox/).

  11. Once your code has been merged, you can return your local repo to the master branch so you can start fresh on your next commit by following these steps:

    cd fuel-web
    git remote update
    git checkout master
    git pull
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.