How Can I Participate?
OpenNebula Add-ons provides an environment to make and give visibility to new add-ons, and to reach new developers and a large audience of users that can help shape and test the new components.
How to Make a New OpenNebula Add-on
1. Check the Existing List of Add-ons
Before starting the development of a new Add-on, consult the list of Add-ons above or at the OpenNebula github. You could instead focus your time in co-leading or contributing to an existing Add-on.
2. Requirements for New Add-ons
The basic requirements are:
A codebase tested in the OpenNebula version you claim to support
Documentation to install and use the add-on with OpenNebula
An active development and support
A potential user community
Apache v2.0 license
Moreover we applaud the following design and development principles in the components:
Collaborative open-source software development
High quality software
Implementation of standards
Security as a mandatory feature
3. Share your Plans with the Community
If you want to start a new Add-on, you should bring it up for discussion on the developers forum. Other developers may have suggestions, and this ensures that the new Add-on is aligned with the roadmap and other features being developed. It is important you’re not doing redundant work. You can also ask in the developers forum if there are other people also planning to start the same Add-on.
4. Identify a Add-on Leader
Add-ons leaders are responsible for coordinating the development of the add-ons and committing contributions from other developers.
5. Group Infrastructure Set-up
A new repository Addon-Name will be created at the OpenNebula project github. Leaders will be granted with commit access to the new repository. This new repository will have an Apache LICENSE file and a README file with the following sections:
Description: What is the add-on about
Development: Identify how to contribute and how support and issues are supported
Authors: Identify leaders and rest of contributors with emails
Compatibility: Tested OpenNebula versions
Features: Summary of main functionalities
Limitations: Known limitations if any
Requirements: Hardware/software requirements for usage
Installation: How to install the Add-on
Configuration: How to confite and tune the Add-on
Usage: How to use the Add-on
References: External references to project site, etc
License: Apache v2.0
Other: You are free to add more sections
You can have a look to one of the existing README files.
Regarding Development, you can use GitHub issue tracking system and wiki to manage the project.
6. Make the Add-on Public
Once the leadership is identified and the Add-on infrastructure is ready, we will add the new Add-on to the Add-on Catalog.
7. Announce the New Add-on
To help you attract new developers and users, we will help you announce the creation of the new Add-on in our forum, social instruments, and blog. You can also use the OpenNebula logo in the promotion of the Add-on.
OpenNebula requires contributions to be released under the Apache 2.0 license, and have licensing information in the header when uploaded to the github repository. This submission method makes all contributions immediately available to all community members under the Apache 2.0 license.
How to Run an OpenNebula Add-on
1. Support the Add-on
Add-ons are supported through the forum.
2. Maintain the Add-on
Add-ons are maintained by their leaders. Typically they are also the main developers of the Add-on. Only leaders have commit access (Push & Pull) to the Add-on repository. Contributions from other developers are submitted by pull request on GitHub.
3. Build Community
Attract users and developers.
4. Keep Compatibility
Add-ons do not necessarily have to follow the OpenNebula release cycle, but it is very important to test their compatibility with upcoming versions of OpenNebula. Once a new OpenNebula Beta version of OpenNebula is announced, leaders will have 10 days to test compatibility and release a new version of the Add-on.
5. Promote your Work
How to Contribute to Add-on Development
The Development section in the README file of the Add-on specifies how development is being managed. Typically, the GitHub issues system is used for issue tracking.
The leaders of the project are the only members with commit privileges. To contribute bug patches or new features, you can use the github Pull Request model to the Add-on public Git repository:
Create a branch (git checkout -b my_markup)
Commit your changes (git commit -am “My changes”)
Push to the branch (git push origin my_markup)
Create a Pull Request to this repository from your new branch
Coordination is performed through the developers forum. It is assumed that code and documentation are contributed under the Apache License 2.0.
You can contact the leader if you are interested in co-leading the Add-on.
Are the Add-ons Part of the OpenNebula Distribution?
Add-ons do not necessarily have to end as part of the OpenNebula distribution. New add-ons should go through an incubation phase and the quality assurance processes of the project before they can be part of the OpenNebula distribution. Prior to escalation to the OpenNebula distribution, the Add-ont needs to show that:
It perfectly fits within the OpenNebula project
Its features are highly demanded by the community
It has been developed to be thoroughly tested with the quality assurance processes of the project
The developers allocate resources for the maintenance and support of the new component to ensure long term stability to its development
The developers must “sign off” their work.
The add-ons listed here have been created by developers from the OpenNebula community, ranging from individual developers and research centers to corporations. Check their compatibility with the versions of OpenNebula and their level of maturity. Some of them are experimental and have not been reviewed.
|Pyone||Library||GitHub||Doc||Python binding for XMLRPC|
|iSCSI||Storage Driver||GitHub||Doc||Datastore driver for iSCSI|
|AppMarket||Tool||GitHub||Doc||Build a marketplace to share appliances between OpenNebula instances|
|KVM SR-IOV||Network Driver||GitHub||Doc||Networking drivers to support SR-IOV devices, including Infiniband, in KVM virtual machines|
|oneInsight||Tool||GitHub||Doc||Visualization add-on that allows users to have at a glance, an insight on the load of managed hosts.|
|Windows Contextualization||Tool||GitHub||Doc||Contextualization Scripts for Windows VMs|
|Metadata||Tool||GitHub||Doc||Metadata server for OpenNebula|
|iSCSI V7000||Storage Driver||GitHub||Doc||iSCSI Storage Driver for IBM Storwize V7000 SAN|
|StorPool||Storage Driver||GitHub||Doc||StorPool Storage Driver|
|EYWA||Network Driver||GitHub||Doc||Virtual Network Driver for HA/LB|
|ZFS Storage Driver||Storage Driver||GitHub||Doc||The ZFS datastore driver provides OpenNebula with the possibility of using ZVOL volumes instead of plain files to hold the Virtual Images.|
|LXCoNe||VMM Driver||GitHub||Doc||VMM Driver to manage LXC containers|
|DRBD||Storage Driver||GitHub||Doc||DRBD Manage Storage Driver|
|vCloud Driver||VMM Driver||GitHub||Doc||Driver to manage resources in VMware vCloud infrastructures. It includes virtualization and monitoring drivers.|
|LXDoNe||VMM Driver||GitHub||Doc||VMM Driver to manage LXD containers|
|nodejs||Library||GitHub||Doc||OpenNebula XMLRPC Nodejs client|
|Image Backup||Tool||GitHub||Doc||OpenNebula backup script for QCOW2 datastores|
|Zabbix||Tool||GitHub||Doc||Zabbix template for monitoring OpenNebula cloud|
The following repositories are no longer maintained:
|Ganglia||Monitoring Driver||GitHub||Doc||Information Manager drivers for Ganglia|
|jclouds4one||Cloudbursing Driver||GitHub||Doc||Cloud bursting driver to access remote cloud providers using jclouds|
|storage-vdc||Storage Driver||GitHub||Doc||Storage for virtual machines providing a shared platform with support for caching, replication, live migration, snapshots and compression.|
|iSCSI Equallogic||Storage Driver||GitHub||Doc||iSCSI Storage Driver for Equallogic PS series SAN|
|Sheepdog||Storage Driver||GitHub||Doc||Sheepdog Storage Driver|
|Saturnring SCSI||Storage Driver||GitHub||Doc||Saturn SCSI storage backend for a persistent block device datastore|
The OpenNebula project does not endorse or recommend any products listed, and cannot vouch for the quality or reliability of any of them.