In order for OPNFV projects to integrate into installers subscribed to Genesis they must interface with Genesis to create and approve requirements. This page serves as the procedure for projects to follow in order to interface correctly with the Genesis project.
As previously stated by the Genesis project:
It is the responsibility of the integrating project to support installers in adding their required functionality. This is a two-way agreement between Genesis/Installers and the project requesting integration, in which both parties agree to support the development work of implementing a requirement into installers. Note that the Genesis team provides help, support, and guidance but does not actively drive the integration work needed within the installers for a new component. If a project proposes a requirement for installers in Genesis but does not support the implementation, it is very unlikely that the Genesis team will make the requirement a common requirement for all installers participating in Genesis.
Please follow the below steps in order to engage with the Genesis team:
1. CREATION: Please create a Jira story detailing the specific requirement you want supported by all installers participating in Genesis. The Jira story should include the following information:
You can find the JIRA requirements currently proposed here: https://jira.opnfv.org/issues/?jql=project%20%3D%20GENESIS
Please see an example for how to create a Jira ticket below.
2. REVIEW and DISCUSSION: The Genesis team will discuss your requirement using Jira comments and/or in a regular Genesis team meeting. It is your project's responsiblity to update the JIRA requirement with comments about the progress towards being able to implement/support your requirement. If your requirement is on the agenda of a Genesis meeting, the Genesis team will ask you to attend this meeting. You should have someone from your project present in that meeting as your requirement will be discussed. The Genesis team will then decide whether your proposal needs to be modified, needs more scope/information, or can be moved forward to eventually become a common requirement.
3. PROPOSAL: Once accepted to be moved forward, a proposed patch to the genesisreq repo will be created by a member of the Genesis team. The proposed patch will be up for review and voting in Gerrit and will document your requirement in detail and reference common code provided. The creation of a patch does not yet mean your requirement is officially supported or approved. It means that the Genesis team has agreed to consider your proposed requirement.
4. ACCEPT/DECLINE: The Genesis team (which consists of a lead from every subscribing installer project) will vote +1,-1 for the requirement in Gerrit. If a majority of leads vote +1, your requirement will be approved and officially be a part of that release for Genesis installers. Otherwise the proposed patch will be abandoned in Gerrit. If your requirement is not approved as a common requirement, then you may still choose to engage with a select set of installer projects to get your feature supported by some set of installers.
5. IMPLEMENTATION: Assuming that your requirement got accepted, it becomes an common requirement across all installers participating in Genesis. You'll work jointly with the Genesis team to get your requirement implemented and supported by all installers participating in Genesis.
6. COMPLETE: Jira tickets will be set to "resolved" if all installers have successfully implemented the new requirement.
Background: The Genesis team uses the different tools in the following way: