Wikimedia Release Engineering Team/Onboarding

Pre-boarding checklist

 * 1) Get access to @wikimedia.org email
 * 2) WMF OIT should have created a wiki account for you.
 * 3) Generate 2 ssh keys
 * 4) *prod - for production logins e.g. bastions.
 * 5) * non-prod - for everything else e.g. Cloud Services (WMCS), Gerrit (Note: sometimes this is key is referred to as cloud or labs key)
 * 6) Select a shell/unix name,  this is important, choose wisely .
 * 7) Select a username on Wikitech,   this is important, choose wisely . Many go with their full name.
 * 8) * The Wikitech username (aka LDAP username) will be visible in many many places (including Gerrit). You will be seeing it ALL THE TIME.
 * 9) Generate a GPG key
 * 10) Choose an IRC nickname. Make sure nick you turn nick enforcement is on or/and get an IRC cloack

Wikitech
After creating an account on Wikitech, go to preferences


 * User Profile: Enable 2FA (hint: use Google Authenticator or Authy or whatever system you use already)
 * Openstack: Add your non-prod key

Copy/paste into onboarding task
[ ] Create ldap user https://wikitech.wikimedia.org/wiki/Help:Getting_Started [ ] Register in phabricator (https://www.mediawiki.org/wiki/Phabricator/Help#Creating_your_account_and_notifications) [ ] Associate WMF mediawiki account with phab user account (https://phabricator.wikimedia.org/settings/user/bstorm/page/external/) [ ] Server access and responsibilities agreement https://phabricator.wikimedia.org/L3 [ ] Add 2factor to Phabricator login [ ] Add 2factor to wikitech login [ ] New shell user process (https://wikitech.wikimedia.org/wiki/Production_shell_access#New_users) (Add to data.yaml in correct groups) [ ] Join public IRC channels (wikimedia-releng, wikimedia-operations, wikimedia-pipeline, wikimedia-cloud, wikimedia-cloud-admin ) [ ] Set enforce for irc nick ( https://meta.wikimedia.org/wiki/IRC/Instructions#Register_your_nickname,_identify,_and_enforce ) [ ] Join private IRC channels (wikimedia-releng-team, wikimedia-staff, security) [ ] Create/add GPG key to pwstore - https://phabricator.wikimedia.org/source/releng-secrets/repository/master/ [ ] Add to ops@ mailing list (https://lists.wikimedia.org/mailman/listinfo/ophttps://wikitech.wikimedia.org/wiki/LDAP/Groupss) [ ] Add to engineering-l@ (https://lists.wikimedia.org/mailman/listinfo/engineering) [ ] Add to qa@ (https://lists.wikimedia.org/mailman/listinfo/qa) [ ] Add to releng@ private team list (https://lists.wikimedia.org/mailman/listinfo/releng) [ ] Add to wikitech-l@ list (https://lists.wikimedia.org/mailman/listinfo/wikitech-l) [ ] Add to our Cloud VPS projects - https://horizon.wikimedia.org/project/member/ (deployment-prep and integration) [ ] Add to LDAP groups: wmf, releng, ciadmin - https://wikitech.wikimedia.org/wiki/LDAP/Groups [ ] Add to Gerrit group: wmf-deployments https://gerrit.wikimedia.org/r/#/admin/groups/21,members [ ] Add to Phabricator groups: #WMF-NDA, #trusted-contributors, #acl*releng, #acl_repository-admins, #acl_project-admins, #acl*phabricator) [ ] Add to #Security phabricator group: https://www.mediawiki.org/wiki/Wikimedia_Security_Team/Policy/Access_to_security_issues [ ] Add to RelEng Phame blog edit permissions: https://phabricator.wikimedia.org/phame/blog/manage/1/ [ ] Read the readings: https://www.mediawiki.org/wiki/Wikimedia_Release_Engineering_Team/Onboarding#Readings

Gerrit login
Use your Wikitech credentials to login to Gerrit. Go to preferences and add your non-prod key.

Your onboarding person should add you to the wmf-deployments group: https://gerrit.wikimedia.org/r/#/admin/groups/21,members

Phabricator login
Login to phabricator using your Wikitech credentials.

Shell user (connecting to bastions)

 * Read Wikimedia Server Access Responsibilities for your responsibilities, and Bastion or more details on the bastion hosts. Pick the one geographically closest to you.
 * Read Production shell access and copy the SSH config described there.
 * Prepare a patch for your user on puppet.

Access to pwstore

 * Run  and follow the prompts (default expiration is never, but should limit it to 1 year)


 * uploads public key to key server


 * reach out to Greg to see about getting it signed. Requires two signatures.

Mailing lists

 * releng@lists.wikimedia.org - Private team list
 * ops@lists.wikimedia.org - Private ops list, includes all deployers
 * qa@lists.wikimedia.org - public list
 * security@wikimedia.org - (if appropriate) private alias for security issue reporting and follow-up
 * wikitech-l@wikimedia.org - public list for all things Wikimedia development
 * engineering@wikimedia.org - public list (initially just for WMF engineering staff, now public)

IRC Channels

 * #wikimedia-releng - team channel with task, code review, and monitoring bot announcements
 * #wikimedia-staff - private WMF staff and contractors only channel, useful backchannel for staff-only meetings
 * #wikimedia-releng-team - private team IRC channel
 * Prerequisite: the user's nick must be registered on Freenode, see: https://freenode.net/kb/answer/registration
 * Add the user to the access list for the channel using the  template:
 * Then add to invite list (so they don't have to invite themselves each time):
 * #wikimedia-operations - most production server discussion happens here
 * #wikimedia-pipeline - focused on the cross-team Deployment Pipeline project
 * #wikimedia-tech - general Wikimedia tech discussion
 * #wikimedia-dev - Wikimedia dev related bot announcements (tasks and code review)
 * #wikimedia-cloud and #wikimedia-cloud-admin - Cloud VPS (much of our CI infrastructure depends on Wikimedia Cloud VPS)
 * #wikimedia-dev - Wikimedia dev related bot announcements (tasks and code review)
 * #wikimedia-cloud and #wikimedia-cloud-admin - Cloud VPS (much of our CI infrastructure depends on Wikimedia Cloud VPS)

= People to meet and things to do with them = You'll want to meet these people soon, some on the first day! You should probably introduce yourself over IRC and ask to schedule a Google hangout with them.

The goal of this section is to meet some of your team mates and learn how the team fits together. Hopefully you'll talk to everyone on the team one on one for about thirty minutes over the first week or two.

First day

 * Greg Grossmeier, manager of the Release Engineering team. He is normally in the Pacific timezone.
 * Tell him everything is going great and that the instructions are easy to follow but you are still overwhelmed by the reading you have to do.
 * Tell him that you found some errors in the instruction and fixed the template. :P
 * Ask him to give you an overview of how the foundation is organized, what teams do what, and all that.
 * Make sure he adds you to any relevant team meetings.
 * He'll want to talk to you one on one a few times in the first week.

First couple of weeks

 * Antoine Musso
 * Dan Duvall
 * Jean-Rene Branaa
 * Mukunda Modell
 * Tyler Cipriani (thcipriani)
 * Ask him why MediaWiki deployment still sucks, and then pair on a SWAT deploy.
 * Ask him about his increasingly ridiculous collection of dotfiles.
 * Zeljko Filipin
 * Ask him about Selenium, continuous integration, MediaWiki-Vagrant, SWAT, train deploys.
 * Ask him about daylight saving time, juggling, Rubik's Cube, ukulele, Pareto principle, lightning talks, open space.
 * Ask him about his increasingly ridiculous collection of dotfiles.
 * Zeljko Filipin
 * Ask him about Selenium, continuous integration, MediaWiki-Vagrant, SWAT, train deploys.
 * Ask him about daylight saving time, juggling, Rubik's Cube, ukulele, Pareto principle, lightning talks, open space.

Readings

 * https://office.wikimedia.org/wiki/New_tech_employee_orientation <-- important
 * https://office.wikimedia.org/wiki/Technical_onboarding_for_new_hires
 * https://office.wikimedia.org/wiki/New_Hire_Orientation_Videos
 * http://www.aosabook.org/en/mediawiki.html