Skip to content

[WIP] github-management: add rotation program #6185

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions github-management/rotation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# GitHub Management Rotation

GitHub Management Rotation refers to a rotation program both for the
[GitHub Administration Team] and the [New Membership Coordinators].
Rotations are volunteer-driven and best-effort during business hours only.
The GitHub Management team is spread across the globe so please keep timezones
in mind while expecting responses from the rotating member.

The rotation program is **not equivalent to oncall** and our SLO remains
one week.

## Rotation Schedule

You can find the rotation schedule and the current rotating member at this [calendar].
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if there's an easier way of handling the rotation schedule.

@mrbobbytables do you think it'd be feasible to publish this to k8s.dev? Similar to how https://www.kubernetes.dev/resources/calendar/ works.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure what the test-infra-oncall (http://go.k8s.io/oncall) uses but that looks pretty cool.

Copy link
Member Author

@nikhita nikhita Oct 27, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure what the test-infra-oncall (http://go.k8s.io/oncall) uses

The data source is at https://storage.googleapis.com/kubernetes-jenkins/oncall.json. Afaik https://github.com/kubernetes/test-infra/blob/master/maintenance/oncall.html is used to display the oncall data at http://go.k8s.io/oncall and slack-oncall-updater is used to automatically update the @test-infra-oncall slack usergroup.

I'm not sure how https://storage.googleapis.com/kubernetes-jenkins/oncall.json is generated/updated though. @spiffxp @BenTheElder do you know?

We could do something similar for github-management but we'll need to be even more explicit that this is not an oncall role. :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure how https://storage.googleapis.com/kubernetes-jenkins/oncall.json is generated/updated though.

I'm curious about this as well.

we'll need to be even more explicit that this is not an oncall role.

+100. Naming and communication should be structured very differently since the rotation program is about rotating responsibilities keeping the existing SLOs.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re:calendar, it pulls in details from any of the sig/wg calendars ([email protected] just has to be invited).
We could either use the contribex calendar or create a new one and make sure [email protected] is invited to all events.

Copy link
Member

@BenTheElder BenTheElder Apr 25, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The JSON file is published by a Borg job pulling info from Google's oncall system.

Copy link
Member

@BenTheElder BenTheElder Nov 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NOTE: since this conversation started, I've turned down https://go.k8s.io/oncall. We've moved away from that model entirely. (it serves a page directing you to relevant slack channels #testing-ops and #sig-scalability)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW SRC is actively running an oncall rotation, so that might be a better starting point than the former k8s-infra-oncall

To know a member's timezone and GitHub username, please refer to [README.md].

As a reminder, please reach out to the appropriate team depending on your request.

| Role | Description |
| ---- | ----------- |
| [GitHub Administration Team] | Repository creation or migration, security, moderation, etc |
| [New Membership Coordinators] | New Membership Requests |

## Managing the Rotation Schedule

This section is meant for the GitHub Management team.

Each rotation is for one week. If you would be unavailable during
your assigned rotation schedule, you should swap with another member or
find coverage for that week.

To update the schedule, directly update this [google calendar]. Only GitHub Admins
and NMCs have access to update this calendar.

### Handoff

When your shift ends, you may be involved in one or more ongoing
issues. If you are already invested in the issues and have the bandwidth
for it, you can continue managing the issue (thanks!), but _you are not
obligated to continue managing the issue!_

If you would like to handoff issue command:

1. Start by **ensuring the tracking issue is up to date** - review the
information in the issue description, and fill in or correct any missing
details.
2. **Leave a comment** to add any additional context you have on the
issue. Make sure to list any open questions or decisions and any pending
action items.
3. Reassign the issue to the next rotating member.

Finally, reach out to the next rotating member (email/slack) to make
sure they are aware of the handoff and to answer any questions. _Until they've
explicitly acknowledged the handoff you are still the issue commander!_


[GitHub Administration Team]: /github-management/README.md#github-administration-team
[New Membership Coordinators]: /github-management/README.md#new-membership-coordinator
<!-- TODO: publish calendar to k8s.dev -->
[calendar]: TODO
[google calendar]: TODO
[README.md]: /github-management/README.md