08e54b9c78
* add a correct link to the noop-tests document Change-Id: Iecbd8e2c102373ac5b25f489e9a75c9de4435ab6 Closes-Bug: 1530134
179 lines
5.3 KiB
Markdown
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)
|