Jump to: navigation, search

Internship ideas

Revision as of 19:16, 19 February 2016 by Travis Tripp (talk | contribs) (Coding)


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

Murano - Murano package validation tool

Murano cloud-ready applications are written in MuranoPL language and are packaged into zip packages, with certain prerequisites obligatory (manifest file, package structure, etc.). Having a murano package verification tool would speed up development and debugging of such apps greatly. Package verification tool should include tools for verifying that package structure is correct, all the class files mentioned in manifest file are present. It should also include MuranoPL linting code, to speed up MuranoPL-app development. Finally after the tool is ready — we should implement checks at import level (when importing a package to murano-api) and jobs at commit-time for murano-apps

Difficulty Medium
Topics Murano
Required skills Python
Extra skills YAML
Mentor kzaitsev
Status Not Started
Program Google Summer of Code 2016 / Outreach May-Aug 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 Google Summer of Code 2016 / Outreach May-Aug 2016


Neutron - ovsdb client monitor for Windows

The OVS agent monitors the ports that are added in the compute host to be able to wire them correctly. In Linux it uses the class InterfacePollingMinimizer that notifies the agent when a new port is plugged or unplugged and passes the related events (port added or deleted). For Windows it uses the class AlwaysPoll that doesn't notify any specific event, it returns always true. The OVS agent in Windows is forced to rescan the devices currently in the machine to infer which were added. This is because the current Windows implementation of the interface polling manager doesn't use ovsdb client monitor. The aim of this project is to use ovsdb client monitor also for Windows and make sure that the events are passed correctly to the OVS agent. This will improve the performance and will enable some clean up in the OVS agent code. The first step is getting familiar with the OVS agent and with Neutron in general. Then you will approach openvswitch tools and investigate how to use ovsdb monitor client in Windows. 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
Topics Neutron
Required skills Python
Extra skills Networking, OVS
Mentor rossella_s
Status None
Program Google Summer of Code 2016 / Outreach May-Aug 2016


Glance - Extended support for requests library

You would be learning about glance-replicator, glance_store drivers and if time permits other modules. You are then expected to add support for requests library ( https://pypi.python.org/pypi/requests ) starting with glance-replicator. Although, supporting more than glance-replicator is not expected, more support you add the better your internship will be. You will also help with bug triage and optimizations around that code base as you add more support.

Difficulty Medium
Topics Glance
Required skills Python
Extra skills Good communication skills
Mentor nikhil
Status Open
Program Google Summer of Code 2016 / Outreach May-Aug 2016


Glance - Develop a python based GLARE (GLance Artifacts REpository) client library and shell API

You will learn how python based clients are developed in the Openstack realm. You will be responsible for closely working with the Glare drivers to understand the requirements, API evolution and contribute ideas to the development of the Glare API. You should be able to set up the basic build structure, common interfaces, setup configs and infra jobs for the glareclient. Co-ordinate with the Glare drivers and infra team to setup repositories, documentation and test jobs for releases of this client. Also, based on the outcome and feedback from the Glare API discussions you will be responsible for keep evolving the client library.

Difficulty Medium-Advanced
Topics Glance
Required skills Python
Extra skills Shell scripting & packaging, good communication skills
Mentor nikhil
Status Open
Program Google Summer of Code 2016 / Outreach May-Aug 2016


Searchlight - Extend automated functional testing for Searchlight plugins / Improve existing plugins

Searchlight is intended to dramatically improving the search capabilities and performance of various OpenStack cloud services by indexing their data into ElasticSearch using plugins. You will be learning the Searchlight fundamentals including indexing, searching, faceting, security, etc. You will also learn the APIs and data models of various other OpenStack services that are indexed into Searchlight. You will understand plugin design then explore all of the functional testing aspects mentioned above. You will be responsible for implementing complete coverage of functional testing for one big or two medium sized plugins. You will improve the existing plugins for any bugs or improvements you discover.

Difficulty Medium
Topics Searchlight
Required skills Python
Extra skills Basic understanding of ElasticSearch, good communication skills
Mentor nikhil
Status Open
Program Google Summer of Code 2016 / Outreach May-Aug 2016


OSprofiler - Implement new storage drivers for OSprofiler / add OSprofiler support to other OpenStack projects

OSprofiler is an Oslo library allowing to trace cross-project requests and identify the OpenStack performance bottlenecks via understanding what time was spent on each request stage, how many requests were used, etc. Lots of developing efforts might be found here, including writing new storage drivers for OSprofiler and adding its integration to other OpenStack projects.

Difficulty Medium
Topics OSprofiler
Required skills Python
Extra skills State which other skills are needed
Mentor DinaBelova
Status Open
Program Google Summer of Code 2016 / Outreach May-Aug 2016


Magnum - Container Service for Magnum's Kubernetes Orchestration Engine

Magnum's client has several actions (create/delete/exec/logs/pause/reboot/start/stop/unpause) for containers, currently these commands work only for Docker Swarm COE. When a operator deploys a bay with either Kubernetes COE or the Mesos COE, these command line functionality is not available for the operator as there is not backend support for these operations. In this project, we will first add a concrete implementation for the Container Service that calls Kubernetes API appropriately, then we make sure that the magnum's client command lines work properly against this, just like this works when the operator deploys a bay using swarm COE.

Difficulty Medium
Topics Magnum
Required skills Python
Extra skills State which other skills are needed
Mentor Dims
Status Open
Program Google Summer of Code 2016 / Outreach May-Aug 2016

Documentation

Performance-docs - Add missing sections to http://docs.openstack.org/developer/performance-docs/# and identify the documentation gaps

Performance-docs is quite new initiative leaded and pushed by OpenStack Performance Working Group - https://wiki.openstack.org/wiki/Performance_Team - and we really need your help to work on adding test results, topologies and environments description, etc. to make this source valuable for all community.

Difficulty Medium
Topics Performance-docs
Required skills Good English and great communication skills to collect the information
Extra skills State which other skills are needed
Mentor DinaBelova
Status Open
Program Google Summer of Code 2016 / Outreach May-Aug 2016
Past internship ideas