Upload
shannon-mcfarland
View
360
Download
1
Embed Size (px)
DESCRIPTION
Colin McNamara's presentation on contributing to OpenStack via DevStack.
Citation preview
www.Nexusis.com 877.286.3987 1
Surviving your first check-in: An engineers guide to contributing to OpenStack
Colin McNamara – Chief Geek, Nexus IS CCIE #18233
@COLINMCNAMARA 1/9/2013
www.Nexusis.com 877.286.3987 2 2
Agenda
§ How this all started – “a simple experiment”
§ The importance of community - Leveraging the power of the meetup
§ Talking your employer into supporting OpenStack and the CLA
§ Setting up your Dev environments - getting beyond Devstack
§ “Getting” git, using the git repository for those that don't code for a living
§ Testing your code - what do you mean it doesn't build?
§ How to give back, and get other people involved in the community
www.Nexusis.com 877.286.3987 3 3
My Background
www.Nexusis.com 877.286.3987 4 4
My Perspective
§ Network Engineer first § CCIE #18233
§ Systems/Storage Second § IEEE, IETF, T11
§ Linux user since 98
§ Creator of “Sausage Code”
§ NOT A PROGRAMMER
www.Nexusis.com 877.286.3987 5 5
How this craziness started
www.Nexusis.com 877.286.3987 6 6
“A simple experiment”
§ Ewan Mellor – Citrix Xen
§ Simple feature, Deploy Storage QOS
§ Turned into a 4 month saga
§ Lots of lessons to be learned
www.Nexusis.com 877.286.3987 7 7
Leveraging the power of the Meetup
www.Nexusis.com 877.286.3987 8 8
Meetup.com – Community is your friend
§ Join a Meetup.com group § http://www.meetup.com/
openstack/
§ If there is none in your area– Start One
§ Many eyes help in overcoming challenges
www.Nexusis.com 877.286.3987 9 9
Background
www.Nexusis.com 877.286.3987 10 10
Talking to your employer about contributing
www.Nexusis.com 877.286.3987 11 11
Talking to your employer about contributing
§ Notify your manager. If you don’t have a policy you have a chance to set one.
§ In Ca, you are only protected if your company isn’t in the line of biz your project is.
§ If you are contributing on behalf of a company, an authorized representative of your company should also sign a Corporate Contributor License Agreement.
www.Nexusis.com 877.286.3987 12 12
Next steps – Executing your CLA
§ Join the OpenStack foundation
§ Create your launchpad account § *** don’t change your username after ***
§ Join the OpenStack team on launchpad
§ Sign the CLA electronically
§ Update the Contributors Wiki
§ Request openstack-cla membership on launchpad
§ Wait (or ping an op on #openstack-dev)
www.Nexusis.com 877.286.3987 13 13
Setting up your Dev environment
www.Nexusis.com 877.286.3987 14 14
10 minutes to Devstack
§ Best run on Ubuntu 12.04
§ Log in as a USER (not root)
§ Sudo apt-get install git
§ git clone https://github.com/openstack-dev/devstack.git
§ cd devstack && ./stack.sh
www.Nexusis.com 877.286.3987 15 15
Getting beyond Default Devstack
§ I like to run in a VMware environment § (in home lab + instance on laptop) § Working on cloning Rackspace’s nested setup
that cody_bunch is using
§ Spin up new instances easily
§ Quickly compare versions
§ Default install pushes QEMU
§ Puppet / Cobbler / Koan in your home lab will save you time / headaches
www.Nexusis.com 877.286.3987 16 16
Getting beyond Default Devstack - Stackrc
§ /devstack/stackrc
§ Adjust API’s / Services
§ Change git repos
www.Nexusis.com 877.286.3987 17 17
Getting beyond Default Devstack - Stackrc
§ ~/devstack/stackrc updated to point to working development branch
§ Refs/changes/50/5050/1 is the review ID
www.Nexusis.com 877.286.3987 18 18
You’ve made a change, Now What?
§ ./rejoin_stack.sh will attach you the screen with all the terminals for the various apps. There could be as many as 14 screens depending on how many services are enabled
§ “ctrl-c” and “ctrl-d” on each window to kill the process. “ctrl-a n” takes you to next terminal. Restart the process by using up-arrow key and entering return
§ Another easier way to kill all and restart is to do “screen -ls” and kill the process. Restart by ./rejoin_stack.sh
www.Nexusis.com 877.286.3987 19 19
“Getting Git” OpenStack Workflows
www.Nexusis.com 877.286.3987 20 20
What is Git ?
§ Repository created for Linux Kernel Dev
§ Solves centralization problems – you can code at the lake, or in your isolated lab
§ Can be complex (multiple ways of doing things)
www.Nexusis.com 877.286.3987 21 21
Setting things up – Installing Git
Install Git
Install DevStack
Configure git
Install git-review
Clone a project
Verify gerrit works
www.Nexusis.com 877.286.3987 22 22
Setting things up – Installing DevStack
Install Git
Install DevStack
Configure git
Install git-review
Clone a project
Verify gerrit works
www.Nexusis.com 877.286.3987 23 23
Setting things up – Configuring Git
Install Git
Install DevStack
Configure git
Install git-review
Clone a project
Verify gerrit works
www.Nexusis.com 877.286.3987 24 24
Setting things up – Configuring git-review
Install Git
Install DevStack
Configure git
Install git-review
Clone a project
Verify gerrit works
Git review redirects a commit into a review and test process
www.Nexusis.com 877.286.3987 25 25
Setting things up – Cloning a project
Install Git
Install DevStack
Configure git
Install git-review
Clone a project
Verify gerrit works
www.Nexusis.com 877.286.3987 26 26
Setting things up – Testing Gerrit
Install Git
Install DevStack
Configure git
Install git-review
Clone a project
Verify gerrit works
This error held us up for 2 weeks…
www.Nexusis.com 877.286.3987 27 27
Setting things up – Generate your public key
Install Git
Install DevStack
Configure git
Install git-review
Clone a project
Verify gerrit works
www.Nexusis.com 877.286.3987 28 28
Setting things up – Add your key to review.openstack.org
Install Git
Install DevStack
Configure git
Install git-review
Clone a project
Verify gerrit works
www.Nexusis.com 877.286.3987 29 29
Setting things up – Add your key to review.openstack.org
Install Git
Install DevStack
Configure git
Install git-review
Clone a project
Verify gerrit works
Works -
Doesn’t Work -
www.Nexusis.com 877.286.3987 30 30
Making, Testing and submitting changes
www.Nexusis.com 877.286.3987 31 31
Pro Git – Well worth the price
§ I didn’t write it, but this book is great
§ It is on Safari Books Online
www.Nexusis.com 877.286.3987 32 32
Setting things up
Create a topic branch
Change code
Test Code
Commit Changes
Submit them for review
Monitor the review process
www.Nexusis.com 877.286.3987 33 33
Edited v1_1 api to describe phys as well as virt CPU
Create a topic branch
Change code
Test Code
Commit Changes
Submit them for review
Monitor the review process
www.Nexusis.com 877.286.3987 34 34
./Run_tests.sh in each project
Create a topic branch
Change code
Test Code
Commit Changes
Submit them for review
Monitor the review process
www.Nexusis.com 877.286.3987 35 35
Commit your code
Create a topic branch
Change code
Test Code
Commit Changes
Submit them for review
Monitor the review process
Be verbose, and be sure to call out whether a feature is blueprinted or a bugfix
www.Nexusis.com 877.286.3987 36 36
Submit it for review!!
Create a topic branch
Change code
Test Code
Commit Changes
Submit them for review
Monitor the review process
www.Nexusis.com 877.286.3987 37 37
Track the reviews progress
Create a topic branch
Change code
Test Code
Commit Changes
Submit them for review
Monitor the review process
www.Nexusis.com 877.286.3987 38 38
Giving back Engaging the community
www.Nexusis.com 877.286.3987 39 39
Giving back
§ Start a meetup.com group in your area
§ Connect with other meetup organizers
§ Present to your peers
§ Share your experience with the world
www.Nexusis.com 877.286.3987 40 40
Open Blueprints Stuff to work on
www.Nexusis.com 877.286.3987 41 41
Vish – Nova PTL Open Blueprints
§ edit-default-quota - nova grizzly
§ nova-api-samples - nova grizzlylive-migration-scheduling
§ DHCPv6 Support – SFBay OpenStack
§ openstack-operations-manual - grizzly