Jump to: navigation, search

Internship ideas

Revision as of 10:55, 20 October 2015 by Neiljerram (talk | contribs) (Coding: Add 'Neutron - Pluggable IPAM support for host-dependent IP address allocation')


To submit new ideas please consider creating a new page and use the Template:InternshipIdea (instructions are provided on that page) and you can see how a sample idea page would look like. The pages created with such template are listed on Category:Internship_idea.

List of Ideas for Internships

The OpenStack Foundation has multiple sources for internships, from Outreachy to Google Summer of Code and other opportunities. This page collects the ideas for candidate interns to work on.

Applicants may not have ever worked on FLOSS before and have different levels of competence. Since we have different programs, add here ideas that can be completed by inexperienced contributors, developers or other fields (marketing, communication, graphic design, and anything that may be useful for OpenStack and to include new people in this community).

Coding

Trove - Users and databases CRUD operations for CouchDB

Add basic support for user and databases management in CouchDB

Difficulty Medium
Topics Trove
Required skills Python
Extra skills NoSQL
Mentor vkmc
Status None
Program Outreach Dec-Apr 2016


Zaqar - Implement support for binary data in the websocket transport

Enable Zaqar to store and forward messages with binary content through the websocket transport

Difficulty Medium
Topics Zaqar
Required skills Python
Extra skills Websocket
Mentor vkmc
Status None
Program Outreach Dec-Apr 2016


Murano - Implementation of tagging heat stacks, created by murano

Allow attributing a set of simple string-based tags to stacks and optionally the ability to hide stacks with certain tags by default

Difficulty Medium
Topics Murano
Required skills Python
Extra skills REST API
Mentor efedorova
Status Started
Program Outreach Dec-Apr 2016


Sahara - Improve anti-affinity behavior for cluster creation

Enable sahara to distribute node creation in a more equitable manner with respect to compute hardware affinity. This will involve examining how sahara currently places nodes requesting anti-affinity into a server group, and then creating a solution for distributing the requested nodes. One possibility is for sahara to create more server groups and place nodes in those groups in a round-robin fashion.

Difficulty Medium-Advanced
Topics Sahara
Required skills Python
Extra skills Distributed computing
Mentor elmiko
Status None
Program Outreach Dec-Apr 2016


Neutron - Metering agent add port statistics

Neutron the metering agent collects statistics regarding bandwidth usage. Right now it only measure the bandwidth used by routers. The idea is to extend it and provide statistics also for ports. In the first implementation only openvswitch will be supported, since we will use openvswitch tools to get the port statistics. The first step will be getting familiar with the metering agent and with Neutron in general. Then you will approach openvswitch tools and think about how to use them for this project. After that you can reach out to the community to collect and discuss ideas. Neutron folks are pretty active on #openstack-neutron channel most of the time and would be willing to share their opinions on this or any other project. You'll submit your code upstream and address the comments you get till your patch gets merged.

Difficulty Medium-Advanced
Topics Neutron
Required skills Python
Extra skills Networking, OVS
Mentor rossella_s
Status None
Program Outreach Dec-Apr 2016


Neutron - Pluggable IPAM support for host-dependent IP address allocation

Some use cases would like the IP address(es) that Neutron allocates to a VM to depend on the compute host that Nova chooses for that VM. For example, in the Calico approach where data is routed between compute hosts, it's desirable for the IP addresses that are used on a given host (or rack) to be clustered within a small IP prefix, so that the routes to those IP addresses can be aggregated. Neutron's new pluggable IPAM facility is the main ingredient needed for this, but two other ingredients are needed as well. (1) Review, understanding and enhancement of the port setup exchange between Nova and Neutron, such that Neutron can choose an IP address _after_ Nova has chosen the compute host. (2) Design and coding of a way to pass the chosen host into the pluggable IPAM module, so that the module can take the host into account. Demonstration of this all working will also require (3) A sample pluggable IPAM module that allocates IP addresses in some host-aware way.

This is a challenging but interesting project. Stages of the work will include becoming familiar with the relevant parts of Neutron; writing a spec for the work, and evolving this as feedback is received; and coding, and again evolving this as comments are received, until it's all done!

Difficulty Medium-Advanced
Topics Neutron
Required skills Python
Extra skills Networking
Mentor neiljerram
Status None
Program Outreach Dec-Apr 2016
Past internship ideas