Bugs should be filed on Bug Launchpad for OpenStack-Ansible.
When submitting a bug, or working on a bug, please ensure the following criteria are met:
If it’s a bug that needs fixing in a branch in addition to master, add a ‘<release>-backport-potential’ tag (e.g. liberty-backport-potential). There are predefined tags that will auto-complete.
Please leave the status of an issue alone until someone confirms it or a member of the bugs team triages it. While waiting for the issue to be confirmed or triaged the status should remain as New.
Should only be touched if it is a Blocker/Gating issue. If it is, please set to High, and only use Critical if you have found a bug that can take down whole infrastructures. Once the importance has been changed the status should be changed to Triaged by someone other than the bug creator.
The triaging process is explained on the bug triage documentation page.
Documentation is a critical part of ensuring that the deployers of OpenStack-Ansible are appropriately informed about:
To meet these needs developers must submit code comments, documentation and release notes with any code submissions. All forms of documentation should comply with the guidelines provided in the OpenStack Documentation Contributor Guide, with particular reference to the following sections:
Code comments for variables should be used to explain the purpose of the variable. This is particularly important for the role defaults file as the file is included verbatim in the role’s documentation. Where there is an optional variable, the variable and an explanation of what it is used for should be added to the defaults file.
Code comments for bash/python scripts should give guidance to the purpose of the code. This is important to provide context for reviewers before the patch has merged, and for later modifications to remind the contributors what the purpose was and why it was done that way.
OpenStack-Ansible has multiple forms of documentation with different intent.
Note
The statements below regarding the Install Guide and Role Documentation are statements of intent. The work to fulfill the intent is ongoing. Any new documentation submissions should try to help this intent where possible.
The install guide intends to help deployers install OpenStack-Ansible for the first time. As such, the install guide is somewhat opinionated, focusing on ensuring that the deployer has to make very few decisions and implement the least amount of configuration possible to deploy a running OpenStack environment.
The role documentation (for example, the keystone role documentation) intends to explain all the options available for the role and how to implement more advanced requirements. To reduce duplication, the role documentation directly includes the role’s default variables file which includes the comments explaining the purpose of the variables. The long hand documentation for the roles should focus less on explaining variables and more on explaining how to implement advanced use cases.
Where possible the documentation in OpenStack-Ansible should steer clear of trying to explain OpenStack concepts. Those explanations belong in the OpenStack Manuals or service documentation and OpenStack-Ansible documentation should link to those documents when available, rather than duplicate their content.
Release notes are generated using the reno tool. Release notes must be written with the following guidelines in mind:
In most cases only the following sections should be used for new release notes submitted with patches:
When creating tasks and other roles for use in Ansible please create them using the YAML dictionary format.
Example YAML dictionary format:
- name: The name of the tasks module_name: thing1: "some-stuff" thing2: "some-other-stuff" tags: - some-tag - some-other-tag
Example what NOT to do:
- name: The name of the tasks module_name: thing1="some-stuff" thing2="some-other-stuff" tags: some-tag- name: The name of the tasks module_name: > thing1="some-stuff" thing2="some-other-stuff" tags: some-tag
Usage of the “>” and “|” operators should be limited to Ansible conditionals and command modules such as the Ansible shell or command.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.