119 lines
4.7 KiB
Markdown
119 lines
4.7 KiB
Markdown
---
|
|
title: "Binaries"
|
|
weight: 9
|
|
description: >
|
|
How to release minikube binaries
|
|
---
|
|
|
|
## Preparation
|
|
|
|
* Announce release intent on #minikube
|
|
* Pause merge requests so that they are not accidentally left out of the ISO or release notes
|
|
* Two minikube repos checked out locally:
|
|
* Your personal fork
|
|
* Upstream
|
|
|
|
## Update the Kubernetes version
|
|
|
|
* Run `make update-kubernetes-version` from your local upstream repo copy
|
|
* If any files are updated, create and merge a PR before moving forward
|
|
|
|
## Build a new ISO
|
|
|
|
* All non-patch releases require a new ISO to be built.
|
|
* Patch releases (vx.x.1+) require a new ISO if the `deploy/iso` directory has seen changes since the previous release.
|
|
|
|
See [ISO release instructions]({{<ref "iso.md">}})
|
|
|
|
## Release new kicbase image
|
|
|
|
Run the `kic-release` job in Jenkins, which will automatically create a PR which must be merged (make sure to enter the correct version and repos).
|
|
|
|
## Update Release Notes
|
|
|
|
Run the following script from your local upstream repo copy to generate updated release notes:
|
|
|
|
```shell
|
|
make release-notes
|
|
```
|
|
|
|
Paste the output into CHANGELOG.md, sorting changes by importance to an end-user. If there are >8 changes, split them into *Improvements* and *Bug fixes*
|
|
|
|
- The changelog should only contain user facing change. This means removing PR's for:
|
|
- Documentation
|
|
- Low-risk refactors
|
|
- Test-only changes
|
|
- Remove bots from the contributor list
|
|
- Remove duplicated similar names from the contributor list
|
|
|
|
You may merge this PR at any time, or combine it with a `Makefile` update PR.
|
|
|
|
## Update Makefile
|
|
|
|
Update the version numbers in `Makefile`:
|
|
|
|
* `VERSION_MAJOR`, `VERSION_MINOR`, `VERSION_BUILD`
|
|
|
|
{{% alert title="Warning" color="warning" %}}
|
|
Merge this PR only if all non-experimental integration tests pass!
|
|
{{% /alert %}}
|
|
|
|
## Tag the Release
|
|
|
|
```shell
|
|
sh hack/tag_release.sh 1.<minor>.<patch>
|
|
```
|
|
|
|
## Build the Release
|
|
|
|
This step uses the git tag to publish new binaries to GCS and create a GitHub release:
|
|
|
|
* Navigate to the minikube "Release" jenkins job
|
|
* Ensure that you are logged in (top right)
|
|
* Click "▶️ Build with Parameters" (left)
|
|
* `VERSION_MAJOR`, `VERSION_MINOR`, and `VERSION_BUILD` should reflect the values in your Makefile
|
|
* For `ISO_SHA256_AMD64`, run: `gsutil cat gs://minikube/iso/minikube-v<version>-amd64.iso.sha256`
|
|
* For `ISO_SHA256_ARM64`, run: `gsutil cat gs://minikube/iso/minikube-v<version>-arm64.iso.sha256`
|
|
* Click *Build*
|
|
|
|
## Check the release logs
|
|
|
|
After job completion, click "Console Output" to verify that the release completed without errors. This is typically where one will see brew automation fail, for instance.
|
|
|
|
**Note: If you are releasing a beta, you are done when you get here.**
|
|
|
|
## Merge the releases.json change
|
|
|
|
The release script updates https://storage.googleapis.com/minikube/releases.json - which is used by the minikube binary to check for updates, and is live immediately.
|
|
|
|
minikube-bot will also send out a PR to merge this into the tree. Please merge this PR to keep GCS and GitHub in sync.
|
|
|
|
## 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
|
|
|
|
| Package Manager | URL | TODO |
|
|
| --------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| Arch Linux AUR | <https://aur.archlinux.org/packages/minikube-bin/> | "Flag as package out-of-date" |
|
|
| Brew Cask | <https://github.com/Homebrew/homebrew-cask/tree/master/Casks> | The release job creates a new PR in [Homebrew/homebrew-cask](https://github.com/Homebrew/homebrew-cask) with an updated version and SHA256, double check that it's created. |
|
|
|
|
WARNING: The Brew cask automation is error-prone. please ensure that a PR was created.
|
|
|
|
## Verification
|
|
|
|
Verify release checksums by running `make check-release`
|
|
|
|
## Update docs
|
|
|
|
If there are major changes, please send a PR to update <https://kubernetes.io/docs/setup/learning-environment/minikube/>
|
|
|
|
## Announce
|
|
|
|
Please mention the new release https://github.com/kubernetes/minikube/blob/master/README.md
|
|
|
|
Other places:
|
|
|
|
- #minikube on Slack
|
|
- minikube-dev, minikube-users mailing list
|
|
- Twitter (this is now automated with the @minikube_dev account)
|