[WIP] github-management: add rotation program
This commit adds a rotation program for both GitHub Admins and NMCs to create a sustainable culture and avoid burn out. This is also important to ensure that requests from community members are handled as per our SLO of one week.
Note that this is not an oncall program. Our SLO continues to remain one week.
This was discussed in GitHub Management meeting on 2 September 2021.
This is WIP because we still need to create the rotation calendar and publish it.
/assign @cblecker @spiffxp @mrbobbytables @idvoretskyi @fejta github admins
/assign @palnabarun @ameukam @savitharaghunathan NMCs
/hold explicit hold since this requires consensus from various folks
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: idvoretskyi, nikhita
The full list of commands accepted by this bot can be found here.
The pull request process is described here
- ~~github-management/OWNERS~~ [idvoretskyi,nikhita]
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment
New changes are detected. LGTM label has been removed.
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale - Mark this issue or PR as rotten with
/lifecycle rotten - Close this issue or PR with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
/lifecycle frozen this shouldn't be autoclosed :) Edit: whoop, forgot that this was a PR
@MadhavJivrajani: The lifecycle/frozen label cannot be applied to Pull Requests.
In response to this:
/lifecycle frozen this shouldn't be autoclosed :)
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale - Mark this issue or PR as rotten with
/lifecycle rotten - Close this issue or PR with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
/unassign spiffxp /uncc spiffxp plenty of others assigned as-is
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale - Mark this issue or PR as rotten with
/lifecycle rotten - Close this issue or PR with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale - Mark this issue or PR as rotten with
/lifecycle rotten - Close this issue or PR with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle rotten - Close this issue or PR with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages PRs according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the PR is closed
You can:
- Reopen this PR with
/reopen - Mark this PR as fresh with
/remove-lifecycle rotten - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/close
@k8s-triage-robot: Closed this PR.
In response to this:
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages PRs according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied- After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied- After 30d of inactivity since
lifecycle/rottenwas applied, the PR is closedYou can:
- Reopen this PR with
/reopen- Mark this PR as fresh with
/remove-lifecycle rotten- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/close
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
/reopen /lifecycle active
@cblecker: Reopened this PR.
In response to this:
/reopen /lifecycle active
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
Hello all, restarting work on the rotation program.
Concluding from the above discussions (and in my opinion), the text of the Rotation Program looks really good.
For the next step — finalizing how we manage the rotation schedule — we've talked about two options already:
-
(Nikhita) Publish a shared calendar to k8s.dev, Similar to how https://www.kubernetes.dev/resources/calendar/ works.
- (Bob) We could either use the contribex calendar or create a new one and make sure [email protected] is invited to all events.
-
(Nabarun) Creating a platform like test-infra-oncall (http://go.k8s.io/oncall)
- (Nikhita) 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.
- (Ben) The JSON file is published by a Borg job pulling info from Google's oncall system.
Personally, I lean towards the first option (using contribex cal or creating a new one and adding on-call entries) to get something up quickly. However, I'm open to the second option as well.
cc: @MadhavJivrajani @palnabarun @nikhita @cblecker @mrbobbytables for input.
Once we've decided on one approach, I'll start working on implementing the on-call solution. Thanks!
Sometime back @cblecker created rotations with Opsgenie. We can also consider that as an option.
IIRC, it needed minimal configuration and setup since Opsgenie is meant for on-call rotations.
Sometime back @cblecker created rotations with Opsgenie. We can also consider that as an option.
IIRC, it needed minimal configuration and setup since Opsgenie is meant for on-call rotations.
Thanks so much for pointing, @palnabarun! :pray:
Do you know of any resources or Slack discussions that explain how it was done? cc: @cblecker
I'd prefer opsgenie mainly because its easier to configure. One concern with this is how do we publish who is on rotation at a particular point of time. The slack handle updater looks like something we could use for this? That's probably something for later.
The calendar approach would solve the visibility aspect of it, probably harder to maintain in car of schedule changes though.
The Kubernetes project currently lacks enough contributors to adequately respond to all PRs.
This bot triages PRs according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the PR is closed
You can:
- Mark this PR as fresh with
/remove-lifecycle stale - Close this PR with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
The Kubernetes project currently lacks enough contributors to adequately respond to all PRs.
This bot triages PRs according to the following rules:
- After 90d of inactivity,
lifecycle/staleis applied - After 30d of inactivity since
lifecycle/stalewas applied,lifecycle/rottenis applied - After 30d of inactivity since
lifecycle/rottenwas applied, the PR is closed
You can:
- Mark this PR as fresh with
/remove-lifecycle stale - Close this PR with
/close - Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale