======Compass4nfv Plug-in Integration API====== =====Introduction===== Compass4nfv is based on Ansible Script supporting provision both Ubuntu and Centos operating system, and OpenStack and SDN including OpenDayLight and ONOS framework installation and configuration. =====How to Integrate 3rd party project into Compass4nfv===== Prerequisite: You need a server installed by Ubuntu14.04 with at least 100G storage and 16G Ram, and download Compass, execute git clone https://gerrit.opnfv.org/gerrit/compass4nfv , pay attention not in the "root" folder. 1. Create a role: every component in Compass4nfv is a role, it's in the directory "compass4nfv/deploy/adapters/ansible/roles", you can create a role named your project in this directory. {{:Compass4nfv Plug-in Integration API document 1.png?500|}} 2. Create a "files" folder in your role directory: store some files that need to be used during the installation and provision in the directory "compass4nfv/deploy/adapters/ansible/roles/{your component}/files". 3. Create a "handlers" folder in your role directory: store some .yml scripts to handle with some events from your component in the directory "compass4nfv/deploy/adapters/ansible/roles/{your component}/handlers" 4. Create a "tasks" folder in your role directory: store the main thread .yml scripts for installation and provision in the directory "compass4nfv/deploy/adapters/ansible/roles/{your component}/tasks" 5. Create a "template" folder in your role directory: store some templates that need to be used during the installation and provision in the directory "compass4nfv/deploy/adapters/ansible/roles/{your component}/template" 6. Create a "vars" folder in your role directory: store some .yml scripts with variables that need to be used during installation and provision in the directory "compass4nfv/deploy/adapters/ansible/roles/{your component}/vars" ODL role as an example {{:Compass4nfv Plug-in Integration API document 2.png?500|}} All the installation provision and configuration scripts should be in the role. 7. Add the component role to the deploy scripts, in the "compass4nfv/deploy/adapters/ansible/openstack" directory, {{:Compass4nfv Plug-in Integration API document 3.png?500|}} there are "single-controller.yml" and "HA-ansible-multinodes.yml" available, "single-controller.yml" is for one controller and 4 compute, "HA-ansible-multinodes.yml" is for 3 controller in HA mode and 2 compute. {{:Compass4nfv Plug-in Integration API document 4.png?300|}} item "hosts" means which hosts will be deployed. item "roles" include all the components will be deployed on the "hosts" above. you can insert your component role into the existing role list also could create a new block to include your component role like odl and onos. {{:Compass4nfv Plug-in Integration API document 5.png?300|}}