Skip to content

Commit

Permalink
Merge pull request kubernetes#1 from kubernetes/master
Browse files Browse the repository at this point in the history
Update for 1.11
  • Loading branch information
nickchase committed Apr 20, 2018
2 parents 1656b7c + 59b7c25 commit 1edc8c5
Show file tree
Hide file tree
Showing 19 changed files with 5,544 additions and 43 deletions.
13 changes: 13 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Contributing guidelines

## Sign the CLA

Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests. Please see https://git.k8s.io/community/CLA.md for more info

### Contributing A Patch

1. Submit an issue describing your proposed change to the repo in question.
1. The [repo owners](OWNERS) will respond to your issue promptly.
1. If your proposed change is accepted, and you haven't already done so, sign a Contributor License Agreement (see details above).
1. Fork the desired repo, develop and test your code changes.
1. Submit a pull request.
4 changes: 3 additions & 1 deletion OWNERS
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# See the OWNERS docs: https://git.k8s.io/community/docs/devel/owners.md
# See the OWNERS docs: https://git.k8s.io/community/contributors/devel/owners.md

approvers:
- idvoretskyi
- spiffxp
- calebamiles
- jdumars
- sig-release-leads
- release-team-leads
5 changes: 3 additions & 2 deletions OWNERS_ALIASES
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# See the OWNERS docs: https://git.k8s.io/community/docs/devel/owners.md
# See the OWNERS docs: https://git.k8s.io/community/contributors/devel/owners.md

aliases:
sig-release-leads:
- calebamiles
- pwittrock
- jdumars
release-team-leads:
- bgrant0607
- dchen1107
Expand All @@ -13,6 +13,7 @@ aliases:
- jdumars
- pwittrock
- saad-ali
- jberkus
patch-release-managers:
- enisoc
- fabioy
Expand Down
14 changes: 3 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
- [Features Lead](#features-lead)
- [Bug Triage Lead](#bug-triage-lead)
- [Test Infra Lead](#test-infra-lead)
- [Upgrade Testing Lead](#upgrade-testing-lead)
- [CI Signal Lead](#ci-signal-lead)
- [Release Team Shadow](#release-team-shadow)
- [Individual Contributors](#individual-contributors)
Expand All @@ -37,7 +36,7 @@

## Join us!
- [Google group](https://groups.google.com/forum/#!forum/kubernetes-sig-release)
- [Slack channel](https://kubernetes.slack.com/messages/C56HWQ0TH/)
- [Slack channel](https://kubernetes.slack.com/messages/C2C40FMNF/)
- [Events and meetings calendar](https://calendar.google.com/calendar/embed?src=coreos.com_regcvcrgvq98lua2ikijg1g1uk%40group.calendar.google.com&ctz=America/Los_Angeles)
- [Meeting agenda and notes](https://docs.google.com/document/d/1vhsixdT58iJFfoGZbpmvI_xnK59XyAjtadu3h6hHPpY/edit?usp=sharing)

Expand Down Expand Up @@ -192,16 +191,9 @@ be familiar with the release process and remain ready to discharge the responsib
### Test Infra Lead
- Sets up and maintains all CI for the release branch

### Upgrade Testing Lead
- Ensures that automated upgrade tests provide a clear go/no-go signal for the release
- Tracks and finds owners for all issues with automated upgrade tests
- Ensures that any gaps in automated upgrade testing are covered by manual upgrade testing
- Organizes the manual upgrade testing efforts, including setting up instructions for manual testing,
finding manual testing volunteers, and ensuring any issues discovered are communicated widely and fixed quickly

### CI Signal Lead
- Ensures that all non-upgrade test CI provides a clear go/no-go signal for the release
- Tracks and finds owners to fix any issues with any (non-upgrade) tests
- Ensures that all test (master-blocking, master-upgrade and 1.y-blocking) CI provides a clear go/no-go signal for the release
- Tracks and finds owners to fix any issues with any tests

### Release Team Shadow
Any Release Team member may select one or more mentees to shadow the release process in order to help fulfill future
Expand Down
8 changes: 0 additions & 8 deletions members.md

This file was deleted.

2 changes: 2 additions & 0 deletions release-managers.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@
| 1.8 patch (post 1.8.0) | Joe Betz [@jpbetz](https://github.com/jpbetz) | NA | - | - |
| 1.9 minor (up to 1.9.0) | Anthony Yeh [@enisoc](https://github.com/enisoc) | Jaice Singer DuMars [@jdumars](https://github.com/jdumars) | - | - |
| 1.9 patch (post 1.9.0) | Mehdy Bohlool [@mbohlool](https://github.com/mbohlool) | NA | - | - |
| 1.10 minor (up to 1.10.0) | Jaice Singer DuMars [@jdumars](https://github.com/jdumars) | - | - | - |
| 1.10 patch (post 1.10.0) | Maciek Pytel [@MaciekPytel](https://github.com/MaciekPytel) | NA | - | - |
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
# Kubernetes.io Docs Release Playbook

author(s): [chenopis@](mailto:chenopis@google.com), stevepe@


## TL;DR

This doc contains an outline of tasks to be completed during a Kubernetes.io docs release cycle for a Kubernetes minor release, e.g. v1.9.

## Quarterly release cycle

The Kubernetes release cycle is on a quarterly cadence. For example, in 2017, the releases are: v1.6 Jan-Mar, v1.7 Apr-Jun, v1.8 Jul-Sep, and v1.9 Oct-Dec. Consequently, [kubernetes.io](https://kubernetes.io/) and its [docs maintainers](https://github.com/orgs/kubernetes/teams/sig-docs-maintainers) are part of that process to support documentation created/updated for those releases.

## Managing the cycle

The designated "release meister" (aka Docs Lead), voluntold from [@kubernetes/sig-docs-maintainers](https://github.com/orgs/kubernetes/teams/sig-docs-maintainers), is responsible for managing the process on the docs side and releasing the documentation on [kubernetes.io](https://kubernetes.io/) when the Kubernetes binary release goes out.

### Relevant links

* k8s.io website - [https://kubernetes.io/](https://kubernetes.io/)
* k8s.io (docs) GitHub repo - [kubernetes/kubernetes.github.io](https://github.com/kubernetes/kubernetes.github.io)
* k8s.io [pull request (PR) queue](https://github.com/kubernetes/kubernetes.github.io/pulls)
* OSS Kubernetes features tracking spreadsheet
* [Kubernetes Features OSS tracking board (1.7 release)](https://docs.google.com/spreadsheets/d/1IJSTd3MHorwUt8i492GQaKKuAFsZppauT4v1LJ91WHY/edit?usp=sharing)
* [Kubernetes Features OSS tracking board (1.8 release)](https://docs.google.com/spreadsheets/d/1AFksRDgAt6BGA3OjRNIiO3IyKmA-GU7CXaxbihy48ns/edit#gid=0)
* Not sure whether there will be a tracking spreadsheet for 1.9
* Netlify dashboard - [https://app.netlify.com/](https://app.netlify.com/)
* [kubernetes.slack.com #sig-release](https://kubernetes.slack.com/messages/C2C40FMNF/) Slack channel

### Start the cycle

* Create a new GitHub branch from `master` using the naming convention `release-X.Y`, e.g. `release-1.9`. Here's the [release-1.9 branch](https://github.com/kubernetes/kubernetes.github.io/tree/release-1.9).
* Update the Netlify _vnext staging_ site to use the new branch:
* Login to [Netlify](https://app.netlify.com/) and navigate to the Sites tab.
* Go to the settings for the [kubernetes-io-vnext-staging](https://app.netlify.com/sites/kubernetes-io-vnext-staging/settings) site.
* Edit the Deploy settings and change "Branch" to the new version branch, e.g `release-1.9`.
* Save the change and verify that it is live at [https://kubernetes-io-vnext-staging.netlify.com/](https://kubernetes-io-vnext-staging.netlify.com/).
* Add a reminder in the [pull request template](https://github.com/kubernetes/kubernetes.github.io/blob/master/.github/PULL_REQUEST_TEMPLATE.md) for PRs going into the new release to use the release base branch and set the Milestone, e. g. [this commit](https://github.com/kubernetes/kubernetes.github.io/pull/4632).
* Connect with the release manager -- introduce yourself, etc.
* Join these groups: [kubernetes-sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release), [kubernetes-sig-leads](https://groups.google.com/forum/#!forum/kubernetes-sig-leads), [kubernetes-dev](https://groups.google.com/forum/#!forum/kubernetes-dev).
* Make sure you have been added to the release team and in the doc, e.g. [https://github.com/kubernetes/features/blob/master/release-1.7/release_team.md](https://github.com/kubernetes/features/blob/master/release-1.7/release_team.md).
* Check the proposed timeline for the release, e.g. [https://github.com/kubernetes/features/blob/master/release-1.7/release-1.7.md](https://github.com/kubernetes/features/blob/master/release-1.7/release-1.7.md).
* Make sure a public OSS feature tracking spreadsheet, e.g. [Kubernetes Features OSS tracking board (1.8 release)](https://docs.google.com/spreadsheets/d/1AFksRDgAt6BGA3OjRNIiO3IyKmA-GU7CXaxbihy48ns/edit#gid=0), has been created by the Features manager, currently Jaice Singer DuMars (jdumars).
* Update [kubernetes/community/contributors/devel/release/README.md](https://github.com/kubernetes/community/blob/master/contributors/devel/release/README.md) with your contact info for the Docs role.

### Ongoing tasks

* Look through the [PR queue](https://github.com/kubernetes/kubernetes.github.io/pulls) to make sure ones related to the new release are using the correct base branch and have the Milestone set, e.g. base branch is `release-1.8` and Milestone is `1.8`. Example PRs from the v1.7 release can be viewed [here](https://github.com/kubernetes/kubernetes.github.io/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aclosed%20milestone%3A1.7%20).
* Merge `master` branch back into the branch for the last release.
For example, if you are currently on the v1.8 release, you will need to periodically merge `master` into `release-1.7` right up until `release-1.8` is merged into `master`. This is to make sure that the last release branch is as up to date as possible and left as a snapshot when the new version is released.
* Merge `master` into the branch for the next release.
For example, if you are currently on the v1.8 release, you will need to periodically merge `master` into `release-1.8` in order to pick up any changes in `master` during the release process. Therefore, `release-1.8` should effectively be `master` + commits for v1.8.
* Update the OSS feature tracking spreadsheet with progress on reviews and merge status for each feature doc, e.g. [Kubernetes Features OSS tracking board (1.7 release)](https://docs.google.com/spreadsheets/d/1IJSTd3MHorwUt8i492GQaKKuAFsZppauT4v1LJ91WHY/edit?usp=sharing).
* Attend Kubernetes Tactics meetings.
* Attend Kubernetes Burndown meetings.
* Sync with the release manager biweekly, then weekly, then daily.

### Work with the engineers and community

* Sync with the dev managers and SIG leads so that they know to direct the engineers to you if they have any docs questions.
* Send announcements to:
* [gke-kubernetes-team@google.com](mailto:gke-kubernetes-team@google.com)
* [kubernetes-sig-release@google.com](mailto:kubernetes-sig-release@google.com), Slack #sig-release
* [kubernetes-sig-leads@google.com](mailto:kubernetes-sig-leads@google.com)
* feature owners listed in the OSS feature tracking spreadsheet
* Announcements should cover:
* TL;DR on the docs release process with your contact info.
* Dates for:
* filling in features in the OSS feature tracking spreadsheet
* opening a placeholder PR in the k8s.io repo
* when PRs should be completed and ready for review
* when PRs tech reviews should be completed
* when review feedback should be incorporated by and Docs and Tech LGTMs given
* the drop-dead merge date and time for any last minute PRs
* Meet with engineers early about feature docs and give guidance on what should be a Concept, Task, Tutorial, or Reference doc.
* Recruit community tech writers to help with docs reviews.

### Generate reference docs

* Generate reference docs and place them in kubernetes/website. See [PR 6366](https://github.com/kubernetes/website/pull/6366).
* Update reference page for feature gates. See [PR 6364](https://github.com/kubernetes/website/pull/6364).

### Last minute PRs

* Triage:
* Decide what must go out with release, what can be published just after the release.
* Determine how much effort will be required to review the doc(s).
* Is it a complex feature needing specific reviewers?
* Is it a long doc? Is it several docs?
* Do you have edit permissions to help speed up the turnaround? If not, request that they check the [Allow edits from maintainers](https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) checkbox.
* Get the PR author to help find tech reviewers.
* Ping the PR author to incorporate review feedback ASAP.
* Ask the release manager at the burndown meeting to help find appropriate tech reviewers.
* If not critical to initial release, un-merged PRs can be dealt with after the release.

### Finalize for release

* Create a PR for the merge but do not merge yet, e.g. [PR #4094](https://github.com/kubernetes/kubernetes.github.io/pull/4094) for v1.7 release
* Add tag _do-not-merge_
* Add note and target date in the description, e.g.
_DO NOT MERGE UNTIL KUBERNETES 1.7 IS RELEASED
Target Date: 2017-06-29 @ 13:00 PDT_
* Update the site variables for version numbers:
* Open a PR to modify [/_config.yml](https://github.com/kubernetes/kubernetes.github.io/blob/master/_config.yml) and change version variables to v1.8 and v1.8.0, e.g. [PR #4210](https://github.com/kubernetes/kubernetes.github.io/pull/4210/files).
* Update [/update-imported-docs.sh](https://github.com/kubernetes/kubernetes.github.io/blob/master/update-imported-docs.sh), e.g. [PR #4210](https://github.com/kubernetes/kubernetes.github.io/pull/4210/files#diff-8696ecc75d1b25a0b2812f88aefea8c3).
* Make sure the auto-generated docs have been updated.
* Check with Phillip Wittrock ([pwittroc@google.com](mailto:pwittroc@google.com)).
* Run update-imported-docs.sh.
* Make sure the tutorials are imported from kubernetes/examples repo.
* Run ./update-imported-tutorials.py
* Merge `master` back into the branch for the last release to create final snapshot of the last release, e.g. finalize `release-1.7` branch before `release-1.8` is merged into `master`.
* Add tags to `master`, last release, and next release branches to keep track of snapshot points, e.g. `snapshot-final-v1.6`, `snapshot-initial-v1.7`, etc.
* Update links for release announcement given by Kubernetes PM, currently Aparna Sinha ([apsinha@google.com](mailto:apsinha@google.com)), e.g. [Kubernetes.io Blog: 1.7 Release announcement](https://docs.google.com/a/google.com/document/d/1U8oNYK-baoF-ObIRFKEmCicDnrgFdXAz7Nfkatg_jUo/edit?usp=sharing).
* Work with release manager to update links in release notes to k8s.io docs, e.g. [Google Doc](https://docs.google.com/a/google.com/document/d/1dWFkFJIHo3liTWomvB1ur6jqd6cnxvGb_jjE-3-c6Bo/edit?usp=sharing) that fed into [kubernetes/features: /release-1.7/release-notes-draft.md](https://github.com/kubernetes/features/blob/master/release-1.7/release-notes-draft.md).

### Release and cleanup

* _Squash and merge_ the release PR, e.g. [PR #4094](https://github.com/kubernetes/kubernetes.github.io/pull/4094).
* Move any hanging (un-merged) PRs back to the `master` branch.
* Remove the reminder in the [pull request template](https://github.com/kubernetes/kubernetes.github.io/blob/master/.github/PULL_REQUEST_TEMPLATE.md) for release PRs.
* Merge `master` back into the current release branch to keep them in sync.

## Appendix I: Setup and tools

You will need to use [Git source control management](https://git-scm.com/) with the [GitHub](https://github.com/) site.

Make sure you have a GitHub account and are properly setup with the following:

* Register your GitHub account with Google at [https://github.corp.google.com/](https://github.corp.google.com/)
* Sign up at the CNCF (Linux Foundation) as an employee of Google at [https://identity.linuxfoundation.org/projects/cncf](https://identity.linuxfoundation.org/projects/cncf), login with your Google account.
* Set your [primary email in GitHub](https://github.com/settings/emails) to match your Google email address used in the CNCF step.
* Make sure your email address in Git (either command line or client) is also set to your Google email address.
* Request to be added to the following GitHub organizations/teams:
* Google - [https://github.com/google](https://github.com/google)
* Google Cloud Platform - [https://github.com/GoogleCloudPlatform](https://github.com/GoogleCloudPlatform)
* Kubernetes - [https://github.com/kubernetes](https://github.com/kubernetes)
* [kubernetes.github.io-maintainers](https://github.com/orgs/kubernetes/teams/kubernetes-github-io-maintainers) team as an admin
* [sig-docs-maintainers](https://github.com/orgs/kubernetes/teams/sig-docs-maintainers) team as a member

Use one of the tools below:

1. Git command line (free): [https://git-scm.com/downloads](https://git-scm.com/downloads)
1. Atlassian SourceTree Git client (free): [https://www.sourcetreeapp.com/](https://www.sourcetreeapp.com/)

* Source URL: [https://github.com/kubernetes/kubernetes.github.io.git](https://github.com/kubernetes/kubernetes.github.io.git)
* Under _REMOTES_, use _origin_ (the one that points at the k8s.io repo) and check out the branches:
* `master` branch
* current release branch, e.g. `release-1.8`
* previous release branch, e.g. `release-1.7`

## Appendix II: Merging master into a branch

When merging master into a release branch, e.g. `release-1.8`:

1. Make sure you are on the checked out `release-1.8` branch.
1. Do a _Pull_ from the k8s.io repo but set the _Remote branch to pull_ to `master`.
1. Resolve any conflicts.
1. Push the commits back up to the k8s.io repo to the `release-1.8` remote branch.

## Appendix III: Resolving conflicts during a merge

If using a Git client such as SourceTree, here is a good guide for dealing with merge conflicts: [https://githubtraining.com/fix-merge-conflict-git-using-sourcetree/](https://githubtraining.com/fix-merge-conflict-git-using-sourcetree/)

When you are on a release branch, e.g. `release-1.8`, and are merging `master` into it, the options to resolve a conflict are:

* Resolve using 'mine' - this means to take all the changes from the `release-1.8` branch to resolve the conflict.
* Resolve using 'theirs' - this means to take all the changes from the `master` branch to resolve the conflict.
* Resolve using an external merge tool - there are visual merge tools, like FileMerge on the Mac, that can help you see the differences between file versions and will allow you to select each one you want to keep. I recommend this for more complicated conflicts.
* Resolve manually - you can open the conflicted file with a text editor and manually edit the conflicts. Perform a text search for '>>>>>>', '<<<<<<' and '======'. This will help you navigate to conflicted parts of the file quickly.

**Note:** Keep in mind that sometimes changes to the documentation involve the removal of content, so if a file or paragraph was removed on purpose, make sure it is not there after a conflict has been resolved.
Loading

0 comments on commit 1edc8c5

Please sign in to comment.