-
Notifications
You must be signed in to change notification settings - Fork 430
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #919 from CecileRobertMichon/release-doc-fixes
📖 Update release documentation
- Loading branch information
Showing
1 changed file
with
15 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,26 @@ | ||
# Release Process | ||
|
||
## Change milestone | ||
- Create a new GitHub milestone for the next release | ||
- Change milestone applier so new changes can be applied to the appropriate release | ||
- Open a PR in https://github.com/kubernetes/test-infra to change this [line](https://github.com/kubernetes/test-infra/blob/25db54eb9d52e08c16b3601726d8f154f8741025/config/prow/plugins.yaml#L344) | ||
- Example PR: https://github.com/kubernetes/test-infra/pull/16827 | ||
- Example PR: https://github.com/kubernetes/test-infra/pull/16827 | ||
|
||
## Prepare branch, tag and release notes | ||
- Identify a known good commit on the main branch | ||
- Fast-forward the release branch to the selected commit. Always release from the release branch and not from master! | ||
- Fast-forward the release branch to the selected commit. :warning: Always release from the release branch and not from master! | ||
- `git checkout release-0.x` | ||
- `git fetch upstream` | ||
- `git merge --ff-only upstream/master` | ||
- `git push` | ||
- Create tag with git | ||
- `export RELEASE_TAG=v0.4.6` (the tag of the release to be cut) | ||
- `git tag -s ${RELEASE_TAG} -m "${RELEASE_TAG}"` | ||
- -s creates a signed tag, you must have a GPG key [added to your GitHub account](https://docs.github.com/en/enterprise/2.16/user/github/authenticating-to-github/generating-a-new-gpg-key) | ||
- `-s` creates a signed tag, you must have a GPG key [added to your GitHub account](https://docs.github.com/en/enterprise/2.16/user/github/authenticating-to-github/generating-a-new-gpg-key) | ||
- `git push upstream ${RELEASE_TAG}` | ||
- Update the file `metadata.yaml` if is a major or minor release | ||
- `make release` from repo, this will create the release artifacts in the `out/` folder | ||
- To install the `release-notes` tool, see https://github.com/kubernetes/release/blob/master/cmd/release-notes/README.md | ||
- Install the `release-notes` tool according to [instructions](https://github.com/kubernetes/release/blob/master/cmd/release-notes/README.md) | ||
- Export GITHUB_TOKEN | ||
- Run the release-notes tool with the appropriate commits. Commits range from the first commit after the previous release to the new release commit. | ||
``` | ||
|
@@ -32,24 +35,20 @@ | |
- Images are built by the [post push images job](https://testgrid.k8s.io/sig-cluster-lifecycle-cluster-api-provider-azure#post-cluster-api-provider-azure-push-images) | ||
- Create a PR in https://github.com/kubernetes/k8s.io to add the image and tag | ||
- Example PR: https://github.com/kubernetes/k8s.io/pull/1030/files | ||
- Location of image: https://console.cloud.google.com/gcr/images/s-staging-cluster-api-azure/GLOBAL/cluster-api-azure-controller?rImageListsize=30 | ||
- Location of image: https://console.cloud.google.com/gcr/images/k8s-staging-cluster-api-azure/GLOBAL/cluster-api-azure-controller?rImageListsize=30 | ||
|
||
## Release in GitHub | ||
Create the GitHub release in the UI | ||
- Create a draft release in GitHub and associate it with the tag that was created | ||
- Copy paste the release notes | ||
- Upload artifacts from the `out/` folder | ||
- Upload [artifacts](#expected-artifacts) from the `out/` folder | ||
- Publish release | ||
- [Announce][release-announcement] the release | ||
|
||
## Versioning | ||
|
||
cluster-api-provider-azure follows the [semantic versionining][semver] specification. | ||
|
||
As of this writing, we have not produced as a major or minor release. | ||
|
||
Current pre-release versions can be expected to have breaking changes as we move towards declaring a public API version. | ||
|
||
Example versions: | ||
- Pre-release: `v0.1.1-alpha.1` | ||
- Minor release: `v0.1.0` | ||
|
@@ -58,40 +57,21 @@ Example versions: | |
|
||
## Expected artifacts | ||
|
||
1. A container image containing the azure-provider manager binary | ||
2. A release yaml file `infrastructure-components.yaml` containing the resources needed to deploy to Kubernetes | ||
3. A `cluster-templates.yaml` for each supported flavor | ||
1. A release yaml file `infrastructure-components.yaml` containing the resources needed to deploy to Kubernetes | ||
2. A `cluster-templates.yaml` for each supported flavor | ||
3. A `metadata.yaml` which maps release series to cluster-api contract version | ||
4. Release notes | ||
|
||
## Output locations | ||
|
||
### Container image | ||
|
||
The container image will live in the registry `quay.io/k8s/cluster-api-provider-azure` | ||
under the image name `cluster-api-azure-controller:<tag>` where `<tag>` is | ||
replaced by the version being released. | ||
|
||
### Release Notes | ||
|
||
Release notes are written by hand using the [release notes template][template] as a guide. | ||
|
||
Generally, we'll make a [HackMD](https://hackmd.io/) and share the release note | ||
responsibility for a few days in advance of the release. | ||
|
||
The markdown is shared in the Kubernetes slack in the channel #cluster-api-azure. | ||
|
||
## Communication | ||
|
||
### Minor/Patch Releases | ||
### Patch Releases | ||
|
||
1. Announce the release in Kubernetes Slack on the #cluster-api-azure channel. | ||
2. An announcement email is sent to `[email protected]` and `[email protected]` with the subject `[ANNOUNCE] cluster-api-provider-azure <version> has been released` | ||
|
||
### Major Releases | ||
### Minor/Major Releases | ||
|
||
1. Follow the communications process for [pre-releases](#pre-releases) | ||
2. An announcement email is sent to `[email protected]` with the subject `[ANNOUNCE] cluster-api-provider-azure <version> has been released` | ||
|
||
2. An announcement email is sent to `[email protected]` and `[email protected]` with the subject `[ANNOUNCE] cluster-api-provider-azure <version> has been released` | ||
|
||
[release-announcement]: #communication | ||
[semver]: https://semver.org/#semantic-versioning-200 | ||
|