42
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

Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

Embed Size (px)

DESCRIPTION

Colin McNamara's presentation on contributing to OpenStack via DevStack.

Citation preview

Page 1: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 2: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 3: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 3 3

My Background

Page 4: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 5: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 5 5

How this craziness started

Page 6: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 7: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 7 7

Leveraging the power of the Meetup

Page 8: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 9: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 9 9

Background

Page 10: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 10 10

Talking to your employer about contributing

Page 11: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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.

Page 12: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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)

Page 13: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 13 13

Setting up your Dev environment

Page 14: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 15: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 16: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 16 16

Getting beyond Default Devstack - Stackrc

§  /devstack/stackrc

§  Adjust API’s / Services

§  Change git repos

Page 17: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 18: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 19: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 19 19

“Getting Git” OpenStack Workflows

Page 20: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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)

Page 21: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 22: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 23: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 24: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 25: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 26: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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…

Page 27: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 28: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 29: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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 -

Page 30: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 30 30

Making, Testing and submitting changes

Page 31: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 32: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 33: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 34: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 35: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 36: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 37: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 38: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 38 38

Giving back Engaging the community

Page 39: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 40: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 40 40

Open Blueprints Stuff to work on

Page 41: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

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

Page 42: Colin McNamara - Surviving your first check-in: An engineers guide to contributing to OpenStack

www.Nexusis.com 877.286.3987 42

@colinmcnamara [email protected]

www.colinmcnamara.com