releasing_minikube.md 4.6 KB
Newer Older
D
Dan Lorenc 已提交
1 2
# Steps to Release Minikube

3 4
## Build a new ISO

5
 * http://go/minikube:build-iso
6
 * Ensure that you are logged in (top right)
7 8 9
 * For `ISO_VERSION`, use the intended release version
 * For `ISO_BUCKET`, use `minikube/iso`
 * Click *Build*
10 11
 * Wait ~45 minutes

12
## Update Makefile
D
Dan Lorenc 已提交
13

14
Once the ISO has built, update the Makefile:
D
Dan Lorenc 已提交
15

16 17 18 19 20 21 22 23
```shell
VERSION_MINOR
ISO_VERSION
```

## Run Local Integration Test

Run the integration tests, making sure that all tests pass:
24 25 26 27

```shell
make integration
```
28

29
## Submit PR to update the Makefile
30

31
Pay careful attention to integration test failures from Jenkins.
32

33
If there are test flakes, open or find the appropriate Issue, and add a PR  comment with links to the appropriate issues.
34

35 36 37 38 39
## Build the Release

Run this command:

```shell
40
BUILD_IN_DOCKER=y make cross checksum
41 42
```

43 44 45 46 47 48 49 50 51 52
## Submit PR to update Release Notes and `releases.json`

Then Collect the release notes, and edit them as necessary:

```shell
hack/release_notes.sh
```

Merge output into CHANGELOG.md file.  See [this PR](https://github.com/kubernetes/minikube/pull/3175) for an example.

53

54
Add an entry **to the top** of deploy/minikube/releases.json with the **version** and **checksums**.
55
Send a PR.
56 57 58 59
This file controls the auto update notifications in minikube.
Only add entries to this file that should be released to all users (no pre-release, alpha or beta releases).
The file must be uploaded to GCS before notifications will go out. That step comes at the end.

60 61 62
The schema for this file can be found in deploy/minikube/schema.json.

An automated test to verify the schema runs in Travis before each submit.
63

64
## Upload to GCS:
D
Dan Lorenc 已提交
65 66

```shell
67 68 69 70
gsutil cp out/minikube-linux-amd64 gs://minikube/releases/$RELEASE/
gsutil cp out/minikube-linux-amd64.sha256 gs://minikube/releases/$RELEASE/
gsutil cp out/minikube-darwin-amd64 gs://minikube/releases/$RELEASE/
gsutil cp out/minikube-darwin-amd64.sha256 gs://minikube/releases/$RELEASE/
71 72
gsutil cp out/minikube-windows-amd64.exe gs://minikube/releases/$RELEASE/
gsutil cp out/minikube-windows-amd64.exe.sha256 gs://minikube/releases/$RELEASE/
D
Dan Lorenc 已提交
73 74 75 76 77 78 79 80 81 82 83 84
```

## Tag the Release

Run a command like this to tag it locally: `git tag -a v0.2.0 -m "0.2.0 Release"`.

And run a command like this to push the tag: `git push upstream v0.2.0`.

## Create a Release in Github

Create a new release based on your tag, like [this one](https://github.com/kubernetes/minikube/releases/tag/v0.2.0).

85
Upload the files, and calculated checksums.
86 87 88 89 90 91 92 93

## Upload the releases.json file to GCS

This step makes the new release trigger update notifications in old versions of Minikube.
Use this command from a clean git repo:

```shell
gsutil cp deploy/minikube/releases.json gs://minikube/releases.json
D
dlorenc 已提交
94 95 96 97 98
```

## Mark the release as `latest` in GCS:

```shell
99
gsutil cp -r gs://minikube/releases/$RELEASE/* gs://minikube/releases/latest/
D
dlorenc 已提交
100
```
101 102 103 104 105

## Package managers which include minikube

These are downstream packages that are being maintained by others and how to upgrade them to make sure they have the latest versions

106 107 108
| Package Manager | URL | TODO |
| --- | --- | --- |
| Arch Linux AUR | https://aur.archlinux.org/packages/minikube/ | "Flag as package out-of-date"
109
| Brew Cask | https://github.com/Homebrew/homebrew-cask/blob/master/Casks/minikube.rb | Create a new PR in [Homebrew/homebrew-cask](https://github.com/Homebrew/homebrew-cask) with an updated version and SHA256
D
Dan Lorenc 已提交
110

111 112 113 114 115 116 117 118 119
#### Updating the arch linux package
The Arch Linux AUR is maintained at https://aur.archlinux.org/packages/minikube/.  The installer PKGBUILD is hosted in its own repository.  The public read-only repository is hosted here `https://aur.archlinux.org/minikube.git` and the private read-write repository is hosted here `ssh://aur@aur.archlinux.org/minikube.git`

The repository is tracked in this repo under a submodule `installers/linux/arch_linux`.  Currently, its configured to point at the public readonly repository so if you want to push you should run this command to overwrite

`git config submodule.archlinux.url ssh://aur@aur.archlinux.org/minikube.git `

To actually update the package, you should bump the version and update the sha512 checksum.  You should also run `makepkg --printsrcinfo > .SRCINFO` to update the srcinfo file.  You can edit this manually if you don't have `makepkg` on your machine.

D
Dan Lorenc 已提交
120 121 122
## Release Verification

After you've finished the release, run this command from the release commit to verify the release was done correctly:
123 124 125 126 127
`make check-release`.

## Update kubernetes.io docs

If there are major changes, please send a PR upstream for this file https://github.com/kubernetes/kubernetes.github.io/blob/master/docs/getting-started-guides/minikube.md in order to keep the getting started guide up to date.