fuel-library/README.md
Maksim Malchuk 08e54b9c78 Update README
* add a correct link to the noop-tests document

Change-Id: Iecbd8e2c102373ac5b25f489e9a75c9de4435ab6
Closes-Bug: 1530134
2015-12-30 18:31:31 +03:00

179 lines
5.3 KiB
Markdown

# fuel-library
--------------
## Table of Contents
1. [Overview - What is the fuel-library?](#overview)
2. [Structure - What is in the fuel-library?](#structure)
3. [Granular Deployment - What is the granular deployment for Fuel?](#granular-deployment)
4. [Upstream Modules - How to work with librarian.](#upstream-modules)
5. [Testing - How to run fuel-library tests.](#testing)
6. [Building docs - How to build docs.](#build-docs)
7. [Development](#development)
8. [Core Reviers](#core-reviewers)
9. [Contributors](#contributors)
## Overview
-----------
The fuel-library is collection of Puppet modules and related code used by Fuel
to deploy OpenStack environments.
## Structure
------------
### Basic Repository Layout
```
fuel-library
├── CHANGELOG
├── LICENSE
├── README.md
├── MAINTAINERS
├── debian
├── deployment
├── doc
├── files
├── specs
├── tests
└── utils
```
### root
The root level contains important repository documentation and license
information.
### MAINTAINERS
This is repository level MAINTAINERS file. One submitting a patch should
contact the apropriate maintainer or invite her or him for the code review.
Note, core reviewers are not the maintainers. Normally, cores do reviews
after maintainers.
### debian/
This folder contains the required information to create fuel-library debian
packages.
### deployment/
This folder contains the fuel-library Puppet code, the Puppetfile for
upstream modules, and scripts to manage modules with
[librarian-puppet-simple](https://github.com/bodepd/librarian-puppet-simple).
### doc/
This folder contains RST docs. Currently there is only docs for Noop testing
framework.
### files/
This folder contains scripts and configuration files that are used when
creating the packages for fuel-library.
### specs/
This folder contains our rpm spec file for fuel-library rpm packages.
### tests/
This folder contains our testing scripts for the fuel-library.
### utils/
This folder contains scripts that are useful when doing development on
fuel-library
## Granular Deployment
----------------------
The [top-scope puppet manifests](deployment/puppet/osnailyfacter/modular)
(sometimes also refered as the composition layer) represent the known
deploy paths (aka supported deployment scenarios) for the
[task-based deployment](https://docs.mirantis.com/openstack/fuel/fuel-6.1/reference-architecture.html#task-based-deployment).
## Upstream Modules
-------------------
In order to be able to pull in upstream modules for use by the fuel-library,
the deployment folder contains a Puppetfile for use with
[librarian-puppet-simple](https://github.com/bodepd/librarian-puppet-simple).
Upstream modules should be used whenever possible. For additional details on
the process for working with upstream modules, please read the
[Fuel library for Puppet manifests](https://wiki.openstack.org/wiki/Fuel/How_to_contribute#Fuel_library_for_puppet_manifests)
of the [Fuel wiki](https://wiki.openstack.org/wiki/Fuel).
## Testing
----------
Testing is important for the fuel-library to ensure changes do what they are
supposed to do, regressions are not introduced and all code is of the highest
quality. The fuel-library leverages existing Puppet module rspec tests,
[bats](https://github.com/sstephenson/bats) tests for bash scripts and noop
tests for testing the module deployment tasks in fuel-library.
## Building docs
----------------
You can use tox to prepare virtual environment and build
all RST based guides:
tox -e docs
You can also build a specific guide. For example, to build *Noop Tests
How-to Guide*, use the following command:
tox -e build -- noop-guide
You can find the root of the generated HTML documentation at:
./doc/noop-guide/build/html/index.html
You can also run docs tests with `tox`.
If you like to run individual tests, run:
> - `tox -e checkniceness` - to run the niceness tests
> - `tox -e checksyntax` - to run syntax checks
tox will use the openstack-doc-tools package for execution of these
tests.
### Puppet module tests
Puppet rspec tests should be provided for an every module's directory included.
All of the discovered tests will be automatically executed by the
`rake spec` command issued from the repository root path.
### Bats: Bash Automated Testing System
Shell scripts residing in the `./files` directories should be
covered by the [BATS](https://github.com/sstephenson/bats) test cases.
These should be put under the `./tests/bats` path as well.
Here is an [example](https://review.openstack.org/198355) bats tests
written for the UMM feature.
See also the [bats how-to](https://blog.engineyard.com/2014/bats-test-command-line-tools).
### fuel-library noop
The Noop testing framework is used for testing of the known deploy paths
with existing modular tasks. For details, see the [README](doc/noop-guide/source/README.rst)
## Development
--------------
* [Fuel Development Documentation](https://docs.fuel-infra.org/fuel-dev/)
* [Fuel How to Contribute](https://wiki.openstack.org/wiki/Fuel/How_to_contribute)
## Core Reviewers
-----------------
* [Fuel Cores](https://review.openstack.org/#/admin/groups/209,members)
* [Fuel Library Cores](https://review.openstack.org/#/admin/groups/658,members)
## Contributors
---------------
* [Stackalytics](http://stackalytics.com/?release=all&project_type=all&module=fuel-library&metric=commits)